From d89ee0d46f849485484808e964d2d6f6ccb72158 Mon Sep 17 00:00:00 2001 From: Kristofer Jonsson Date: Fri, 1 Apr 2022 15:41:06 +0200 Subject: Enable IRQs after Incoming Message Handler Interrups must be enabled after the Incoming Message Handler has been initialized, else we might loose interrupts that were enabled before the firmware booted up. Change-Id: I3c18c7ff4585329b54b18f7556757b2b3e8fbc35 --- applications/message_handler/main.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/applications/message_handler/main.cpp b/applications/message_handler/main.cpp index 8a36325..fa5f0b0 100644 --- a/applications/message_handler/main.cpp +++ b/applications/message_handler/main.cpp @@ -148,6 +148,13 @@ void inputMessageTask(void *pvParameters) { printf("Starting input message task\n"); IncomingMessageHandler process(*inputMessageQueue.toQueue(), mailbox, inferenceQueue, outputQueue); + +#ifdef MHU_IRQ + // Register mailbox interrupt handler + NVIC_SetVector((IRQn_Type)MHU_IRQ, (uint32_t)&mailboxIrqHandler); + NVIC_EnableIRQ((IRQn_Type)MHU_IRQ); +#endif + process.run(); } @@ -166,12 +173,6 @@ void outputMessageTask(void *pvParameters) { int main() { BaseType_t ret; -#ifdef MHU_IRQ - // Register mailbox interrupt handler - NVIC_SetVector((IRQn_Type)MHU_IRQ, (uint32_t)&mailboxIrqHandler); - NVIC_EnableIRQ((IRQn_Type)MHU_IRQ); -#endif - if (!mailbox.verifyHardware()) { printf("Failed to verify mailbox hardware\n"); return 1; -- cgit v1.2.1