From 54d739246767b5c8d0c5c287f26d81098ee9993d Mon Sep 17 00:00:00 2001 From: Cleanroom Laptop L15 Date: Fri, 13 May 2022 18:37:16 +0200 Subject: [PATCH] improved mpsoc update handling --- fsfw | 2 +- linux/devices/devicedefinitions/PlocSupervisorDefinitions.h | 6 +++++- linux/devices/ploc/PlocSupvHelper.cpp | 6 +++--- tmtc | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/fsfw b/fsfw index c0ff84bb..dafcaa60 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit c0ff84bb9d81bc3444992fef38b74d260d54d5a0 +Subproject commit dafcaa60079ba8e57753d389e6a569ee3eb0b7cb diff --git a/linux/devices/devicedefinitions/PlocSupervisorDefinitions.h b/linux/devices/devicedefinitions/PlocSupervisorDefinitions.h index f71eaa17..4cefc552 100644 --- a/linux/devices/devicedefinitions/PlocSupervisorDefinitions.h +++ b/linux/devices/devicedefinitions/PlocSupervisorDefinitions.h @@ -309,6 +309,10 @@ class ApidOnlyPacket : public SpacePacket { */ class MPSoCBootSelect : public SpacePacket { public: + + static const uint8_t NVM0 = 0; + static const uint8_t NVM1 = 1; + /** * @brief Constructor * @@ -317,7 +321,7 @@ class MPSoCBootSelect : public SpacePacket { * @param bp1 Partition pin 1 * @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), mem(mem), bp0(bp0), diff --git a/linux/devices/ploc/PlocSupvHelper.cpp b/linux/devices/ploc/PlocSupvHelper.cpp index bacbd850..167c7932 100644 --- a/linux/devices/ploc/PlocSupvHelper.cpp +++ b/linux/devices/ploc/PlocSupvHelper.cpp @@ -10,8 +10,8 @@ #endif #include "fsfw/globalfunctions/CRC.h" -#include "fsfw/timemanager/Countdown.h" #include "fsfw/tasks/TaskFactory.h" +#include "fsfw/timemanager/Countdown.h" #include "mission/utility/Filenaming.h" #include "mission/utility/ProgressPrinter.h" #include "mission/utility/Timestamp.h" @@ -164,6 +164,7 @@ ReturnValue_t PlocSupvHelper::performUpdate() { while (remainingSize > 0) { if (terminate) { terminate = false; + triggerEvent(TERMINATED_UPDATE_PROCEDURE); return PROCESS_TERMINATED; } 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) { std::memcpy(data, buffer, *readBytes); - } - else { + } else { TaskFactory::delayTask(40); } return result; diff --git a/tmtc b/tmtc index a6818502..bc02c9d6 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit a681850248fdf33c948b8cbda84acdf268d28669 +Subproject commit bc02c9d6076dc3f6e0b37a67be04a445245fdd1e