diff --git a/lib/card10/card10.c b/lib/card10/card10.c index 09cc44ff293b8001d7121be3b22b8939bc9fd0e8..43361ef06fbf76323516b68e5fdead7f7b9febd9 100644 --- a/lib/card10/card10.c +++ b/lib/card10/card10.c @@ -224,7 +224,7 @@ void card10_poll(void) portexpander_poll(); } -void card10_reset(void) +void __attribute__((noreturn)) card10_reset(void) { printf("Resetting ...\n"); /* @@ -235,6 +235,9 @@ void card10_reset(void) __asm volatile("nop"); } MXC_GCR->rstr0 = MXC_F_GCR_RSTR0_SYSTEM; + + while (1) + __WFI(); } void GPIO0_IRQHandler(void) diff --git a/lib/card10/card10.h b/lib/card10/card10.h index fc90fe67f47527cbdbcf2a0b30a9c9d53d70d3df..192058f02a76361323e10c50d2e20f6a5a26f427 100644 --- a/lib/card10/card10.h +++ b/lib/card10/card10.h @@ -15,5 +15,5 @@ void core1_start(void *isr); void core1_stop(void); void card10_poll(void); -void card10_reset(void); +void card10_reset(void) __attribute__((noreturn)); #endif