diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-08-25 10:08:01 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-08-25 10:08:01 +0300 |
| commit | 338edba081dba2a2aefb634811be1cc84ec93d64 (patch) | |
| tree | 0021538796c254a8eab8527e8461a2e831e68c1c /Software/Embedded_SW/Embedded/Main.c | |
| parent | 49ddda1cc22d6cbb72f499b37e5db32c95252dfa (diff) | |
| download | Tango-338edba081dba2a2aefb634811be1cc84ec93d64.tar.gz Tango-338edba081dba2a2aefb634811be1cc84ec93d64.zip | |
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Main.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Main.c | 117 |
1 files changed, 57 insertions, 60 deletions
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index d22ee2006..d6f74dd48 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -81,7 +81,6 @@ #include "Modules/Waste/Waste.h" #include <Drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h> #include "Drivers/I2C_Communication/Main_Board_EEPROM/Main_EEPROM.h" -#include "delay.h" #include "Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h" #include "Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.h" #include "modules/AlarmHandling/AlarmHandling.h" @@ -94,6 +93,7 @@ #include <Drivers/I2C_Communication/RFID_NFC/NFC.h> #include <Drivers/I2C_Communication/RFID_NFC/NFC_MainBaord.h> +#include <Utilities/delay.h> //***************************************************************************** // // The system tick rate expressed both as ticks per second and a millisecond @@ -122,71 +122,69 @@ Error_Id eid; int eCode; char ErrorPath[50] = "0://ErrFile.txt"; bool UpdateFlag = false; +bool FirstErrorFlag = true; +Task_Handle PrevTask,NextTask; +extern FIL *LogFileHandle; +/* ======== Function switchHook ======== */ +Void MyswitchFxn(Task_Handle prev, Task_Handle next) +{ + PrevTask = prev; + NextTask = next; +} + /* ======== errHook ======== */ Void errHook(Error_Block *eb) { - /*FRESULT Fresult = FR_OK; - FIL *FileHandle = 0; //the system supports a single active file + FRESULT Fresult = FR_OK; + uint32_t Bytes = 0; - char File[50] = ""; + //char File[50] = "";*/ char message[300]; - int len;*/ + int len; STATUS_GREEN_LED_OFF; ACTIVITY_GREEN_LED_OFF; COMM_GREEN_LED_OFF; STATUS_RED_LED_ON; - MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,InitFailures+1); - ACTIVITY_RED_LED_ON; COMM_RED_LED_ON; - - site = Error_getSite(eb); - eid = Error_getId(eb); - eCode = Error_getCode(eb); - //CloseLogFile(); + ReportStopReporting(); if (UpdateFlag == true) return; - /*FileHandle = my_malloc(sizeof(FIL)); - if (FileHandle == 0) - Fresult = FR_DENIED; - else + if (FirstErrorFlag == true) { - Fresult = f_open(FileHandle,ErrorPath,FA_OPEN_ALWAYS | FA_WRITE | FA_READ); - if (Fresult == FR_OK) - { - f_lseek(FileHandle, FileHandle->fsize); - strncpy(File,site->file,49); - len = usnprintf(message, 80, "\r\n%s %s",__DATE__, __TIME__); - Fresult = f_write(FileHandle,message,len,&Bytes ); - // print user supplied error code - len = usnprintf(message, 300, "\r\nerror %d, eid %d mod %d file %s line %d", - eCode, eid,site->mod, - site->file,site->line); - Fresult = f_write(FileHandle,message,len,&Bytes ); - - //LOG_ERROR (eCode, "error # "); - // check originator's mod id against known mods - if (site->mod == Main_Module_id()) { - Fresult = f_write(FileHandle,"\r\napp error: ",12,&Bytes ); - } + FirstErrorFlag = false; + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,InitFailures+1); + len = usnprintf(message, 300, "\r\nerror task 0x%x %s context prev task 0x%x,%s", PrevTask,Task_Handle_name(PrevTask),NextTask,Task_Handle_name(NextTask)); + Fresult = f_write(LogFileHandle,message,len,&Bytes ); + site = Error_getSite(eb); + eid = Error_getId(eb); + eCode = Error_getCode(eb); + // print user supplied error code + len = usnprintf(message, 300, "\r\nerror %d, eid %d mod %d file %s line %d", + eCode, eid,site->mod, + site->file,site->line); + Fresult = f_write(LogFileHandle,message,len,&Bytes ); - // check error id against known errors - if (eid == Error_E_generic) { - Fresult = f_write(FileHandle,"generic: ",10,&Bytes ); - } - else if (eid == Assert_E_assertFailed) { - System_printf("assertion violation: "); - Fresult = f_write(FileHandle,"\r\nassertion violation: ",22,&Bytes ); - } + //LOG_ERROR (eCode, "error # "); + // check originator's mod id against known mods + if (site->mod == Main_Module_id()) { + Fresult = f_write(LogFileHandle,"\r\napp error: ",12,&Bytes ); + } - // perform default error output - f_close(FileHandle); + // check error id against known errors + if (eid == Error_E_generic) { + Fresult = f_write(LogFileHandle,"generic: ",10,&Bytes ); + } + else if (eid == Assert_E_assertFailed) { + System_printf("assertion violation: "); + Fresult = f_write(LogFileHandle,"\r\nassertion violation: ",22,&Bytes ); } - Task_sleep (200); - my_free(FileHandle); - }*/ + } + CloseLogFile(); + + #ifdef WATCHDOG //Power_Reset(); SysCtlReset(); @@ -245,17 +243,6 @@ int main(void) uint32_t Data,i; MCU_E2PromInit(); - Data = MCU_E2PromEmbeddedVersionRead(); - memcpy (&Version,&Data,4); - i = memcmp(&Version,&_gTangoVersion,4); - if (i) - { - LOG_ERROR(Version.m_minor,"Version change, do stuff"); - FlashInit(); - MCU_E2PromEmbeddedVersionProgram(); - MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); - } - MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures); #endif #ifdef EVALUATION_BOARD @@ -268,7 +255,18 @@ int main(void) LOG_ERROR (iFResult, "Error during init Flash File System"); assert(iFResult); } - //OpenLogFile(); + OpenLogFile(); + Data = MCU_E2PromEmbeddedVersionRead(); + memcpy (&Version,&Data,4); + i = memcmp(&Version,&_gTangoVersion,4); + if (i) + { + LOG_ERROR(Version.m_minor,"Version change, do stuff"); + FlashInit(); + MCU_E2PromEmbeddedVersionProgram(); + MCU_E2PromProgram(EEPROM_INIT_FAILURE_COUNTER,0); + } + MCU_E2PromRead(EEPROM_INIT_FAILURE_COUNTER,&InitFailures); Init_All_I2C(); #ifndef EVALUATION_BOARD @@ -295,7 +293,6 @@ int main(void) FPGA_Init(); Check_IFS_Availability();//Init_IFS();//must be done after FPGA_Init - #endif MAP_FPULazyStackingEnable(); |
