improved mpsoc update handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
Jakob Meier 2022-05-13 18:37:16 +02:00
parent bb397a58de
commit 54d7392467
4 changed files with 10 additions and 6 deletions

2
fsfw

@ -1 +1 @@
Subproject commit c0ff84bb9d81bc3444992fef38b74d260d54d5a0 Subproject commit dafcaa60079ba8e57753d389e6a569ee3eb0b7cb

View File

@ -309,6 +309,10 @@ class ApidOnlyPacket : public SpacePacket {
*/ */
class MPSoCBootSelect : public SpacePacket { class MPSoCBootSelect : public SpacePacket {
public: public:
static const uint8_t NVM0 = 0;
static const uint8_t NVM1 = 1;
/** /**
* @brief Constructor * @brief Constructor
* *
@ -317,7 +321,7 @@ class MPSoCBootSelect : public SpacePacket {
* @param bp1 Partition pin 1 * @param bp1 Partition pin 1
* @param bp2 Partition pin 2 * @param bp2 Partition pin 2
*/ */
MPSoCBootSelect(uint8_t mem, uint8_t bp0, uint8_t bp1, uint8_t bp2) MPSoCBootSelect(uint8_t mem = 0, uint8_t bp0 = 0, uint8_t bp1 = 0, uint8_t bp2 = 0)
: SpacePacket(DATA_FIELD_LENGTH - 1, true, APID_SEL_MPSOC_BOOT_IMAGE, DEFAULT_SEQUENCE_COUNT), : SpacePacket(DATA_FIELD_LENGTH - 1, true, APID_SEL_MPSOC_BOOT_IMAGE, DEFAULT_SEQUENCE_COUNT),
mem(mem), mem(mem),
bp0(bp0), bp0(bp0),

View File

@ -10,8 +10,8 @@
#endif #endif
#include "fsfw/globalfunctions/CRC.h" #include "fsfw/globalfunctions/CRC.h"
#include "fsfw/timemanager/Countdown.h"
#include "fsfw/tasks/TaskFactory.h" #include "fsfw/tasks/TaskFactory.h"
#include "fsfw/timemanager/Countdown.h"
#include "mission/utility/Filenaming.h" #include "mission/utility/Filenaming.h"
#include "mission/utility/ProgressPrinter.h" #include "mission/utility/ProgressPrinter.h"
#include "mission/utility/Timestamp.h" #include "mission/utility/Timestamp.h"
@ -164,6 +164,7 @@ ReturnValue_t PlocSupvHelper::performUpdate() {
while (remainingSize > 0) { while (remainingSize > 0) {
if (terminate) { if (terminate) {
terminate = false; terminate = false;
triggerEvent(TERMINATED_UPDATE_PROCEDURE);
return PROCESS_TERMINATED; return PROCESS_TERMINATED;
} }
if (remainingSize > supv::WriteMemory::CHUNK_MAX) { if (remainingSize > supv::WriteMemory::CHUNK_MAX) {
@ -376,8 +377,7 @@ ReturnValue_t PlocSupvHelper::receive(uint8_t* data, size_t* readBytes, size_t r
} }
if (*readBytes > 0) { if (*readBytes > 0) {
std::memcpy(data, buffer, *readBytes); std::memcpy(data, buffer, *readBytes);
} } else {
else {
TaskFactory::delayTask(40); TaskFactory::delayTask(40);
} }
return result; return result;

2
tmtc

@ -1 +1 @@
Subproject commit a681850248fdf33c948b8cbda84acdf268d28669 Subproject commit bc02c9d6076dc3f6e0b37a67be04a445245fdd1e