@@ -324,13 +324,23 @@ static void setHandlerPriorityLowerThanDebugger(IRQn_Type irq, uint32_t origPrio
324324static void switchFaultHandlersToDebugger ();
325325#endif // UNDONE
326326
327+ // Forward Function Declarations
328+ static void switchFaultHandlersToDebugger ();
329+
327330
328331static void mriDebugMonitorHandler (void )
329332{
330333 g_haltingThreadId = osThreadGetId ();
331334 osThreadFlagsSet (g_mriThreadId, MRI_THREAD_DEBUG_EVENT_FLAG);
332335}
333336
337+ static void mriFaultHandler (void )
338+ {
339+ g_haltingThreadId = osThreadGetId ();
340+ osThreadFlagsSet (g_mriThreadId, MRI_THREAD_DEBUG_EVENT_FLAG);
341+ }
342+
343+
334344void Platform_Init (Token* pParameterTokens)
335345{
336346#ifdef UNDONE
@@ -349,8 +359,8 @@ void Platform_Init(Token* pParameterTokens)
349359 g_pDebugSerial->setSerialPriority (0 );
350360 NVIC_SetPriority (DebugMonitor_IRQn, 1 );
351361
352- switchFaultHandlersToDebugger ();
353362#endif // UNDONE
363+ switchFaultHandlersToDebugger ();
354364 NVIC_SetVector (DebugMonitor_IRQn, (uint32_t )mriDebugMonitorHandler);
355365 enableDWTandITM ();
356366 initDWT ();
@@ -399,14 +409,14 @@ static void setHandlerPriorityLowerThanDebugger(IRQn_Type irq, uint32_t priority
399409 }
400410 NVIC_SetPriority (irq, priority);
401411}
412+ #endif // UNDONE
402413
403414static void switchFaultHandlersToDebugger (void ) {
404- NVIC_SetVector (HardFault_IRQn, (uint32_t )& mriFaultHandler);
405- NVIC_SetVector (MemoryManagement_IRQn, (uint32_t )& mriFaultHandler);
406- NVIC_SetVector (BusFault_IRQn, (uint32_t )& mriFaultHandler);
407- NVIC_SetVector (UsageFault_IRQn, (uint32_t )&mriExceptionHandler );
415+ NVIC_SetVector (HardFault_IRQn, (uint32_t )mriFaultHandler);
416+ NVIC_SetVector (MemoryManagement_IRQn, (uint32_t )mriFaultHandler);
417+ NVIC_SetVector (BusFault_IRQn, (uint32_t )mriFaultHandler);
418+ NVIC_SetVector (UsageFault_IRQn, (uint32_t )mriFaultHandler );
408419}
409- #endif // UNDONE
410420
411421uint32_t Platform_CommHasReceiveData (void )
412422{
0 commit comments