From f77bb1f04a248efdebb5149aa1a5aafe76b2e2c8 Mon Sep 17 00:00:00 2001 From: schneider Date: Sat, 23 Jul 2011 21:47:29 +0200 Subject: [PATCH] basic: don't crash on bus interrupt --- firmware/basic/basic.c | 21 +++++++++++++++------ firmware/basic/basic.h | 1 - 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/firmware/basic/basic.c b/firmware/basic/basic.c index d60bff0..819de91 100644 --- a/firmware/basic/basic.c +++ b/firmware/basic/basic.c @@ -126,12 +126,7 @@ void rbInit() { gpioIntEnable(RB_BUSINT); // add this to catch interrupt: /* - void PIOINT3_IRQHandler(void) { - if (gpioIntStatus(RB_BUSINT)) { - // do something - gpioIntClear(RB_BUSINT); - } - } + */ //nrf_init(); @@ -139,3 +134,17 @@ void rbInit() { font=&Font_7x8; ECIES_setup(); } +#define WEAK_ALIAS(f) __attribute__ ((weak, alias (#f))); +void interrupt_undefined(void) { +} + +void businterrupt(void) WEAK_ALIAS(interrupt_undefined); + + +void PIOINT3_IRQHandler(void) { + if (gpioIntStatus(RB_BUSINT)) { + gpioIntClear(RB_BUSINT); + businterrupt(); + } +} + diff --git a/firmware/basic/basic.h b/firmware/basic/basic.h index f754f18..8c6f5d0 100644 --- a/firmware/basic/basic.h +++ b/firmware/basic/basic.h @@ -172,5 +172,4 @@ struct MENU { void handleMenu(const struct MENU *the_menu); - #endif