From 55387f5654403fff0ca3173f5bfcd69a12825ed8 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Mon, 17 Jun 2019 13:53:39 +0300 Subject: preparation for sample winding, preparation for work with FLASH instead of FFS --- .../Embedded_SW/Embedded/Modules/Thread/Thread_init.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c index b741f33f3..529e4d260 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c @@ -17,6 +17,7 @@ #include "Common/SWUpdate/FileSystem.h" #include "drivers/Flash_Memory/fatfs/ff.h" #include "drivers/SSI_Comm/Dancer/Dancer.h" +#include "drivers/Flash_ram/FlashProgram.h" #include "thread.h" MotorDriverConfigStruc MotorsCfg[NUM_OF_MOTORS]={0}; @@ -151,6 +152,12 @@ uint32_t StoreDancerConfigMessage() response_size = hardware_configuration__pack(&DancerConfig, response_buffer); } Fresult = FileWrite(response_buffer,response_size,DancerConfigPath); + EraseFlashSection(DANCERS_MAP_IN_FLASH,1024); + for (Dancer_i = 0; Dancer_i < MAX_SYSTEM_DANCERS; Dancer_i++) + { + ReadAppAndProgram(DANCERS_MAP_IN_FLASH, sizeof(Dancers), Dancers); + } + my_free(response_buffer); return Fresult; @@ -163,6 +170,9 @@ uint32_t LoadDancerConfigMessage() HardwareConfiguration *DancerConfig; int Dancer_i; + HardwareDancer DancersCfg1[MAX_SYSTEM_DANCERS] = {0}; + + memcpy(DancersCfg1,(void *)DANCERS_MAP_IN_FLASH,sizeof(DancersCfg1)); Fresult = FileRead(DancerConfigPath, &Bytes, &buffer); if (Fresult == FR_OK) @@ -175,6 +185,12 @@ uint32_t LoadDancerConfigMessage() hardware_configuration__free_unpacked(DancerConfig,NULL); free (buffer); } + + if (DancersCfg[0].zeropoint != DancersCfg1[0].zeropoint) LOG_ERROR(DancersCfg[0].zeropoint,"DancersMismatch"); + else if (DancersCfg[1].zeropoint != DancersCfg1[1].zeropoint) LOG_ERROR(DancersCfg[1].zeropoint,"DancersMismatch"); + else if (DancersCfg[2].zeropoint != DancersCfg1[2].zeropoint) LOG_ERROR(DancersCfg[2].zeropoint,"DancersMismatch"); + else LOG_ERROR(DancersCfg[0].zeropoint,"Dancers Match!!"); + return Fresult; } -- cgit v1.3.1