diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-02-09 20:33:19 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-02-09 20:33:19 +0200 |
| commit | 13c3bd2ebedce9e9bd49aced716221533d2d4f46 (patch) | |
| tree | e1345e76867b7941a86cf0b3e5560244f7620155 /Software/Embedded_SW/Embedded/Common/SWUpdate | |
| parent | 36b8379acc12947b6a2a385c3bbe4b932f297390 (diff) | |
| parent | 25fa087b38d74942ee94a88391059a820b5d22b4 (diff) | |
| download | Tango-13c3bd2ebedce9e9bd49aced716221533d2d4f46.tar.gz Tango-13c3bd2ebedce9e9bd49aced716221533d2d4f46.zip | |
m
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c index c42dc6695..24f02f60c 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FirmwareUpgrade.c @@ -24,6 +24,7 @@ #include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h" #include "drivers/FPGA/Full_Vme/FPGA_Programming_Up.h" #include "drivers/FPGA/Full_Vme/ispvme/vmopcode.h" +#include "drivers/Flash_ram/FlashProgram.h" #include "Common/Utilities/Utils.h" #include "Common/SWUpdate/FileSystem.h" @@ -53,6 +54,7 @@ uint32_t ActivateVersionCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { ActivateVersionResponse response = ACTIVATE_VERSION_RESPONSE__INIT; MessageContainer responseContainer; + bool last = true; usnprintf(activateString, 1000, "file %d of %d bytes %d of %d",CurrentRunningFile,NumberOfFiles,vme_index,CurrentFileSize); @@ -60,31 +62,29 @@ uint32_t ActivateVersionCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) if (CurrentRunningFile<NumberOfFiles) { - responseContainer = createContainer(MESSAGE_TYPE__ActivateVersionResponse, ActivateToken, false, &response, &activate_version_response__pack, &activate_version_response__get_packed_size); - responseContainer.continuous = true; - uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); - size_t container_size = message_container__pack(&responseContainer, container_buffer); - my_free(responseContainer.data.data); - SendChars(container_buffer, container_size); - return OK; + last = false; } - responseContainer = createContainer(MESSAGE_TYPE__ActivateVersionResponse, ActivateToken, true, &response, &activate_version_response__pack, &activate_version_response__get_packed_size); + responseContainer = createContainer(MESSAGE_TYPE__ActivateVersionResponse, ActivateToken, last, &response, &activate_version_response__pack, &activate_version_response__get_packed_size); + responseContainer.has_continuous = true; responseContainer.continuous = true; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); SendChars(container_buffer, container_size); - if (SafeRemoveControlCallback(ActivateVersionControlId, ActivateVersionCallBackFunction )==OK) - ActivateVersionControlId = 0xFF; - else - LOG_ERROR(255,"ActivateVersionCallBackFunction"); - - if (Reboot == true) + if (last == true) { - LOG_ERROR(255,"Update successful, Rebooting in 5 seconds"); - Task_sleep (eOneSecond*5); - Power_Reset(); + if (SafeRemoveControlCallback(ActivateVersionControlId, ActivateVersionCallBackFunction )==OK) + ActivateVersionControlId = 0xFF; + else + LOG_ERROR(255,"ActivateVersionCallBackFunction"); + + if (Reboot == true) + { + LOG_ERROR(255,"Update successful, Rebooting in 5 seconds"); + Task_sleep (eOneSecond*5); + Power_Reset(); + } } return OK; @@ -190,6 +190,7 @@ uint32_t ActivateVersionRequestFunc(MessageContainer* requestContainer) } } responseContainer = createContainer(MESSAGE_TYPE__ActivateVersionResponse, requestContainer->token, false, &response, &activate_version_response__pack, &activate_version_response__get_packed_size); + responseContainer.has_continuous = true; responseContainer.continuous = true; if (Fresult!= OK) { @@ -197,7 +198,6 @@ uint32_t ActivateVersionRequestFunc(MessageContainer* requestContainer) responseContainer.errormessage = "Activate Version Request error"; responseContainer.continuous = false; } - responseContainer.continuous = true; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); my_free(responseContainer.data.data); |
