lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42225?usp=email )
Change subject: sysmoOCTSIM: define own IRQ handlers ......................................................................
sysmoOCTSIM: define own IRQ handlers
Previous: In case of an fault, nmi or an uncatched IRQ, the OCTSIM would go into a while(1) loop and would require a power cycle. Use a generic panic handler
Change-Id: If8476fd4a784312a0597ddd0b7eb54a7ebf94868 --- M sysmoOCTSIM/main.c 1 file changed, 36 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/25/42225/1
diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index e641822..1c424b0 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -41,7 +41,11 @@
volatile bool break_on_panic = false;
-static void panic_handler(const char *fmt, va_list args) +/* To have the panic handler as simple as possible to also call + * in cases of stack overflow, etc, have a _panic_handler() with + * no arguments. + */ +static inline void _panic_handler(void) { if (break_on_panic) { __asm("BKPT #0"); /* wait for JTAG/SWD */ @@ -51,10 +55,40 @@ } }
+static void panic_handler(const char *fmt, va_list args) +{ + _panic_handler(); +} + +/* Use functions to have the fault type available in the backtrace. */ +void NonMaskableInt_Handler(void) +{ + _panic_handler(); +} + +void HardFault_Handler(void) +{ + _panic_handler(); +} + +void BusFault_Handler(void) +{ + _panic_handler(); +} + +void UsageFault_Handler(void) +{ + _panic_handler(); +} + +void Fallback_Handler(void) +{ + _panic_handler(); +} + extern struct ccid_slot_ops iso_fsm_slot_ops; static struct ccid_instance g_ci;
- static void ccid_app_init(void);
static void board_init(void)