aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Common/SWUpdate
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-02-09 20:33:19 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-02-09 20:33:19 +0200
commit13c3bd2ebedce9e9bd49aced716221533d2d4f46 (patch)
treee1345e76867b7941a86cf0b3e5560244f7620155 /Software/Embedded_SW/Embedded/Common/SWUpdate
parent36b8379acc12947b6a2a385c3bbe4b932f297390 (diff)
parent25fa087b38d74942ee94a88391059a820b5d22b4 (diff)
downloadTango-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.c36
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);