From 25d78c0062908e91b4d0ae241600f4a077a19400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85strand?= Date: Tue, 21 Apr 2020 14:19:44 +0200 Subject: MLBEDSW-1796 Refactor IRQ initialization Turn the IRQ initialization around, to have the application define the interrupt handler and expose the driver routine that is to be called when that happens. Change-Id: Idbfba1b1d1a1eaf6678ee16e9583c496eb2287ed --- src/ethosu_driver.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/ethosu_driver.c') diff --git a/src/ethosu_driver.c b/src/ethosu_driver.c index 567c878..3bad2ac 100644 --- a/src/ethosu_driver.c +++ b/src/ethosu_driver.c @@ -20,8 +20,9 @@ #include "ethosu_common.h" #include "ethosu_device.h" -#include "irq_driver.h" + #include +#include #include #include #include @@ -34,7 +35,7 @@ static int abort_inference = false; static volatile bool irq_triggered = false; #if defined(CPU_CORTEX_M3) || defined(CPU_CORTEX_M4) || defined(CPU_CORTEX_M7) || defined(CPU_CORTEX_M33) || \ defined(CPU_CORTEX_M55) -void irq_handler() +void ethosu_irq_handler(void) { uint8_t irq_raised = 0; (void)ethosu_is_irq_raised(&irq_raised); @@ -56,13 +57,12 @@ static inline void wait_for_irq(void) break; } - sleep(); + __WFI(); __enable_irq(); } } #else -#define setup_irq(...) // Just polling the status register static inline void wait_for_irq(void) { @@ -198,8 +198,6 @@ int ethosu_init(void) return -1; } - setup_irq(&irq_handler, EthosuIrq); - return_code = ethosu_dev_init(); return return_code; -- cgit v1.2.1