aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Main.c
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-08-25 10:08:01 +0300
committerAvi Levkovich <avi@twine-s.com>2020-08-25 10:08:01 +0300
commit338edba081dba2a2aefb634811be1cc84ec93d64 (patch)
tree0021538796c254a8eab8527e8461a2e831e68c1c /Software/Embedded_SW/Embedded/Main.c
parent49ddda1cc22d6cbb72f499b37e5db32c95252dfa (diff)
downloadTango-338edba081dba2a2aefb634811be1cc84ec93d64.tar.gz
Tango-338edba081dba2a2aefb634811be1cc84ec93d64.zip
merge
Diffstat (limited to 'Software/Embedded_SW/Embedded/Main.c')
-rw-r--r--Software/Embedded_SW/Embedded/Main.c117
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();