aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-12-20 11:32:47 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-12-20 11:32:47 +0200
commit295cc6981e5fca0f958c7aef06ee9cf8f25a762c (patch)
tree865e7e83992953d3432060c5d9a5824e63fd32ea /Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
parent631fd1917ab3809b4b8d7e0066c49572f76688da (diff)
downloadTango-295cc6981e5fca0f958c7aef06ee9cf8f25a762c.tar.gz
Tango-295cc6981e5fca0f958c7aef06ee9cf8f25a762c.zip
Version 1.6.0 mostly changes in flash and EEPROM
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c124
1 files changed, 44 insertions, 80 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 010fc9607..4c727d377 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -105,33 +105,19 @@ uint32_t HWConfigurationInit(void)
GeneralHwReady = false;
//Control_WD(ENABLE,250);
- memcpy(&Bytes,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(Bytes));
-
- if ((Bytes)&&(Bytes < 5000))
+ buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
+ if (buffer)
{
- buffer = my_malloc (Bytes);
- if (buffer)
- {
- memcpy(buffer, (void *)(GENHWCFG_MAP_IN_FLASH+4),Bytes);
- UploadRequest = upload_hardware_configuration_request__unpack(NULL, Bytes, buffer);
- Report("HWConfigurationInit from flash", __FILE__,__LINE__,Bytes, RpMessage, UploadRequest->hardwareconfiguration->n_dancers, 0);
- }
+ //EraseFlashSection(GENHWCFG_SECTION_FLASH);
+ //ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&Bytes);
+ //ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, Bytes, buffer);
+ UploadRequest = upload_hardware_configuration_request__unpack(NULL, Bytes, buffer);
+ Report("HWConfigurationInit from file", __FILE__,__LINE__,Bytes, RpMessage, UploadRequest->hardwareconfiguration->n_dancers, 0);
+ //AlarmHandlingLoadFile();
}
- if (UploadRequest == NULL)
- {
- buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
- if (buffer)
- {
- EraseFlashSection(GENHWCFG_SECTION_FLASH);
- ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&Bytes);
- ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, Bytes, buffer);
- UploadRequest = upload_hardware_configuration_request__unpack(NULL, Bytes, buffer);
- Report("HWConfigurationInit from file", __FILE__,__LINE__,Bytes, RpMessage, UploadRequest->hardwareconfiguration->n_dancers, 0);
- }
- else
- Report("HWConfigurationInit Not available", __FILE__,__LINE__,Bytes, RpMessage, 0, 0);
+ else
+ Report("HWConfigurationInit Not available", __FILE__,__LINE__,Bytes, RpMessage, 0, 0);
- }
//buffer = HWConfigurationLoadFromFile(&Bytes);
//status= memcmp(buffer,buffer1,Bytes);
@@ -323,9 +309,10 @@ uint32_t EmbeddedParametersInit(void)
FRESULT Fresult = FR_OK;
uint32_t Bytes = 0;
uint8_t* buffer = NULL;
-
+ bool success=false;
ConfigurationParameters *Params;
+ // try loading from flash
memcpy(&Bytes,(void *)EMBEDDED_PARAMETERS_MAP_IN_FLASH,sizeof(Bytes));
if ((Bytes)&&(Bytes < 1000))
@@ -339,26 +326,23 @@ uint32_t EmbeddedParametersInit(void)
LoadConfigurationParameters(Params);
Report("LoadConfigurationParameters from flash", __FILE__,__LINE__,Bytes, RpMessage, Fresult, 0);
free(buffer);
- }
- else
- {
- LoadConfigurationParameters(0);
- Report("LoadConfigurationParameters default", __FILE__,__LINE__,0, RpMessage, Fresult, 0);
+ success = true;
}
}
- else
+ if (success == false)
{
- if (LoadConfigurationParamsFromFile(false)!=OK)
- {
- LoadConfigurationParameters(0);
- Report("LoadConfigurationParameters default", __FILE__,__LINE__,0, RpMessage, Fresult, 0);
- }
- else
+ if (LoadConfigurationParamsFromFile(false)==OK)
{
+ success = true;
Report("LoadConfigurationParameters from file", __FILE__,__LINE__,EmbeddedParameters->closevalvetimeout, RpMessage, Fresult, 0);
}
}
-
+ if (success == false)
+ {
+ LoadConfigurationParameters(0);
+ Report("LoadConfigurationParameters default. flash and file error!!!", __FILE__,__LINE__,0, RpMessage, Fresult, 0);
+ AlarmHandlingSetAlarm (EVENT_TYPE__POWER_UP_BIT_FAILURE,ON);
+ }
if (EmbeddedParameters->n_generalparameters >= 6)
{
IDS_Dispenser_SetBackLashValues(EmbeddedParameters->initialdispenserpressure, EmbeddedParameters->initialdispensertimeout, EmbeddedParameters->initialdispensertimelag,EmbeddedParameters->generalparameters[5]);
@@ -734,9 +718,6 @@ uint32_t MidTankDataSetupFunc(MessageContainer* requestContainer)
uint32_t HWConfigurationFunc(MessageContainer* requestContainer)
{
uint32_t status = 0;
- uint32_t DataLen = 0;
- uint32_t ExistingDataLen = 0;
- int compare = 0;
MessageContainer responseContainer;
UploadHardwareConfigurationResponse response = UPLOAD_HARDWARE_CONFIGURATION_RESPONSE__INIT;
UploadHardwareConfigurationRequest* UploadRequest = NULL;
@@ -750,7 +731,7 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer)
GeneralHwReady = false;
Control_WD(ENABLE,250);
//compare existing data to new data. update if different
- memcpy(&ExistingDataLen,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(ExistingDataLen));
+ /*memcpy(&ExistingDataLen,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(ExistingDataLen));
if (ExistingDataLen == requestContainer->data.len)
{
compare = memcmp (requestContainer->data.data,((void *)(GENHWCFG_MAP_IN_FLASH+4)),requestContainer->data.len);
@@ -766,15 +747,17 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer)
ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&DataLen);
ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, DataLen, requestContainer->data.data);
Report("store hw configuration", __FILE__,compare,requestContainer->data.len,RpMessage,ExistingDataLen,0);
-
+ AlarmHandlingLoadFile();
FileWrite(requestContainer->data.data, requestContainer->data.len,HwConfigPath,BIOS_WAIT_FOREVER);
- }
+ }*/
UploadRequest = upload_hardware_configuration_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
-
-
- status = HWConfiguration(UploadRequest);
-
- GeneralHwReady = true;
+ if (UploadRequest)
+ {
+ FileWrite(requestContainer->data.data, requestContainer->data.len,HwConfigPath,BIOS_WAIT_FOREVER);
+ Report("store hw configuration", __FILE__,__LINE__,requestContainer->data.len,RpMessage,UploadRequest->hardwareconfiguration->n_motors,0);
+ status = HWConfiguration(UploadRequest);
+ GeneralHwReady = true;
+ }
}
@@ -833,7 +816,7 @@ void HWSystemResetRequest(MessageContainer* requestContainer)
HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ;
}
-uint32_t FlashInitResults[5] = {0,0,0,0,0};
+//uint32_t FlashInitResults[5] = {0,0,0,0,0};
uint32_t LoadConfigurationParamsFromFile(bool Initialize)
{
FRESULT Fresult = FR_OK;
@@ -849,9 +832,9 @@ uint32_t LoadConfigurationParamsFromFile(bool Initialize)
LoadConfigurationParameters(Params);
free (buffer);
//configuration_parameters__free_unpacked(Params,NULL);
- FlashInitResults[1] = true;
+ //FlashInitResults[1] = true;
Report("Parameters Initialized from file", __FILE__,__LINE__,Bytes, RpMessage, EMBEDDED_PARAMETERS_MAP_IN_FLASH, 0);
- EraseFlashSection(EMBEDDED_PARAMETERS_SECTION_FLASH);
+ EraseFlashSection();
ReadAppAndProgram(EMBEDDED_PARAMETERS_MAP_IN_FLASH, 4,&Bytes);
ReadAppAndProgram(EMBEDDED_PARAMETERS_MAP_IN_FLASH+4, Bytes, buffer);
if (Initialize)
@@ -863,16 +846,16 @@ void HWConfigurationLoadFile(void)
{
uint8_t* buffer = NULL;
uint32_t Bytes = 0;
+ UploadHardwareConfigurationRequest* UploadRequest = NULL;
+
buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
if (buffer)
{
- EraseFlashSection(GENHWCFG_SECTION_FLASH);
- ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&Bytes);
- ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, Bytes, buffer);
- free (buffer);
- FlashInitResults[0] = true;
+ UploadRequest = upload_hardware_configuration_request__unpack(NULL, Bytes, buffer);
+ Report("HWConfigurationInit from file", __FILE__,__LINE__,Bytes, RpMessage, UploadRequest->hardwareconfiguration->n_dancers, 0);
}
- Report("Hardware Initialized", __FILE__,__LINE__,Bytes, RpMessage, GENHWCFG_MAP_IN_FLASH, 0);
+ else
+ Report("HWConfigurationInit Not available", __FILE__,__LINE__,Bytes, RpMessage, 0, 0);
}
void FlashInitAndLoad(void)
{
@@ -895,7 +878,7 @@ void FlashInitAndLoad(void)
FlashInit(); //initialize flash
Report("Flash Initialized", __FILE__,__LINE__,FLASH_SIZE, RpMessage, FLASH_RAM_BASE, 0);
- buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
+ /*buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
if (buffer)
{
EraseFlashSection(GENHWCFG_SECTION_FLASH);
@@ -904,7 +887,7 @@ void FlashInitAndLoad(void)
free (buffer);
FlashInitResults[0] = true;
}
- Report("Hardware Initialized", __FILE__,__LINE__,Bytes, RpMessage, GENHWCFG_MAP_IN_FLASH, 0);
+ Report("Hardware Initialized", __FILE__,__LINE__,Bytes, RpMessage, GENHWCFG_MAP_IN_FLASH, 0);*/
StoreDancerConfigMessage(0);
StoreDancerConfigMessage(1);
@@ -915,7 +898,7 @@ void FlashInitAndLoad(void)
{
Report("Alarm Initialized from file", __FILE__,__LINE__,Bytes, RpMessage, ALARM_MAP_IN_FLASH, 0);
}*/
- EraseFlashSection(EMBEDDED_PARAMETERS_SECTION_FLASH);
+ EraseFlashSection();
Fresult = FileRead(EmbeddedParametersPath, &Bytes, &buffer);
if (Fresult == FR_OK)
@@ -927,33 +910,14 @@ void FlashInitAndLoad(void)
ReadAppAndProgram(EMBEDDED_PARAMETERS_MAP_IN_FLASH+4, Bytes, buffer);
free (buffer);
//configuration_parameters__free_unpacked(Params,NULL);
- FlashInitResults[1] = true;
Report("Parameters Initialized from file", __FILE__,__LINE__,sizeof(EmbeddedParameters), RpMessage, EMBEDDED_PARAMETERS_MAP_IN_FLASH, 0);
}
else
{
LoadConfigurationParameters(0);
- FlashInitResults[1] = 2;
Report("Parameters Initialized from default", __FILE__,__LINE__,sizeof(EmbeddedParameters), RpMessage, EMBEDDED_PARAMETERS_MAP_IN_FLASH, 0);
}
- /*Fresult = FileRead(ProcessParamsPath, &Bytes, &buffer);
- if (Fresult == FR_OK)
- {
- request = upload_process_parameters_request__unpack(NULL, Bytes, buffer);
- if (request)
- {
- ProcessParams = request->processparameters;
- Bytes = sizeof(ProcessParams);
- ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH, 4,&Bytes);
- ReadAppAndProgram(PROCESS_PARAMETERS_MAP_IN_FLASH+4, Bytes, &ProcessParams);
- upload_process_parameters_request__free_unpacked(request,NULL);
- FlashInitResults[2] = true;
- Report("Process Initialized", __FILE__,__LINE__,Bytes, RpMessage, (int)ProcessParams->dryerzone1temp, 0);
- }
- }
- else
- Report("Process not Initialized", __FILE__,__LINE__,0, RpMessage, 0, 0);*/
#ifdef WATCHDOG
ROM_WatchdogResetEnable(WATCHDOG0_BASE);
timeout = 120000000*3;