Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r09e6cf9de34acf18f6e1138bf56ac0edb4821186 -r65280b3e6fda421cc2130e7e73f41e9fd23b51c9 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 09e6cf9de34acf18f6e1138bf56ac0edb4821186) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 65280b3e6fda421cc2130e7e73f41e9fd23b51c9) @@ -30,6 +30,7 @@ #include "RTC.h" #include "SafetyShutdown.h" #include "SyringePump.h" +#include "system.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "Valves.h" @@ -428,6 +429,8 @@ { sendUIVersionRequest(); + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_STARTUP, SYS_EXCEPTION, (U32)0x000BAD01 ) // log ESR value and BAD01 to indicate the causes of resets (see Table 2-8 Technical Ref Manual) + SYS_EXCEPTION = 0xFFFFU; // clear all exception flags by writing logic 1 to each bit // Send the startup event SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_STARTUP, 0, 0 ) // Send the first submode change event. It is the mode Init and it does not start from a previous Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -rccfd15568f1e3d304320c2babb2fd4bcf0413304 -r65280b3e6fda421cc2130e7e73f41e9fd23b51c9 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision ccfd15568f1e3d304320c2babb2fd4bcf0413304) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 65280b3e6fda421cc2130e7e73f41e9fd23b51c9) @@ -163,6 +163,7 @@ SW_FAULT_ID_SAFETY_SHUTDOWN_INVALID_SELF_TEST_STATE, SW_FAULT_ID_PHANTOM_INTERRUPT, SW_FAULT_ID_UNEXPECTED_DMA_INTERRUPT, // 130 + SW_FAULT_ID_ILLEGAL_MEM_ACCESS, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; Index: firmware/source/sys_selftest.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r65280b3e6fda421cc2130e7e73f41e9fd23b51c9 --- firmware/source/sys_selftest.c (.../sys_selftest.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/source/sys_selftest.c (.../sys_selftest.c) (revision 65280b3e6fda421cc2130e7e73f41e9fd23b51c9) @@ -45,10 +45,14 @@ /* USER CODE BEGIN (0) */ /* USER CODE END */ +#include "Common.h" +#include "HDDefs.h" +#include "SystemCommMessages.h" #include "sys_selftest.h" #include "sys_core.h" #include "sys_pmu.h" + /** @fn void selftestFailNotification(uint32 flag) * @brief Self test fail service routine * @@ -1119,7 +1123,12 @@ * This data abort is not caused due to diagnostic checks of flash and TCRAM ECC logic. */ /* USER CODE BEGIN (42) */ -/* USER CODE END */ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, (U32)SW_FAULT_ID_ILLEGAL_MEM_ACCESS, (U32)0xDEADBEEF ) + //SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_PHANTOM_INTERRUPT ) + // SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_STARTUP, SYS_EXCEPTION, (uint32_t)0x000BAD02 ) // log ESR value and BAD02 value to indicate + +/* USER CODE END */ // access to an invalid memory location + } /** @fn void stcSelfCheckFail(void) Index: firmware/source/sys_startup.c =================================================================== diff -u -r30f049651877229042e3f8700c8596e5b9a1e0f4 -r65280b3e6fda421cc2130e7e73f41e9fd23b51c9 --- firmware/source/sys_startup.c (.../sys_startup.c) (revision 30f049651877229042e3f8700c8596e5b9a1e0f4) +++ firmware/source/sys_startup.c (.../sys_startup.c) (revision 65280b3e6fda421cc2130e7e73f41e9fd23b51c9) @@ -158,7 +158,7 @@ handlePLLLockFail(); } /* clear all reset status flags */ - SYS_EXCEPTION = 0xFFFFU; + // SYS_EXCEPTION = 0xFFFFU; commented out for testing in handlePOSTStateStart() /* USER CODE BEGIN (13) */ /* USER CODE END */