X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Farm%2Fdrv%2Fsysirq_at91.c;h=d08f79b55efa883a87b4aaddeffb3a680f7cc523;hb=32d1445272120a254d77ce8d1af1f527da7a2c17;hp=410e53f0b12f98ee8ae481cdf419e2e58e6f3bb5;hpb=fe0a14d1434098bfd0780d06a2a7e55f27940d27;p=bertos.git diff --git a/bertos/cpu/arm/drv/sysirq_at91.c b/bertos/cpu/arm/drv/sysirq_at91.c index 410e53f0..d08f79b5 100644 --- a/bertos/cpu/arm/drv/sysirq_at91.c +++ b/bertos/cpu/arm/drv/sysirq_at91.c @@ -93,11 +93,15 @@ STATIC_ASSERT(countof(sysirq_tab) == SYSIRQ_CNT); * This function checks for interrupt enable state of * various sources (system timer, etc..) and calls * the corresponding handler. + * + * \note On ARM all IRQs are handled by the sysirq_dispatcher, so we can't + * differentiate between context-switch and non-context-switch ISR. */ -static void sysirq_dispatcher(void) __attribute__ ((interrupt)); -static void sysirq_dispatcher(void) +static DECLARE_ISR_CONTEXT_SWITCH(sysirq_dispatcher) { - for (unsigned i = 0; i < countof(sysirq_tab); i++) + unsigned int i; + + for (i = 0; i < countof(sysirq_tab); i++) { if (sysirq_tab[i].enabled && sysirq_tab[i].handler)