aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristofer Jonsson <kristofer.jonsson@arm.com>2022-04-01 15:41:06 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2022-04-04 11:12:42 +0000
commitd89ee0d46f849485484808e964d2d6f6ccb72158 (patch)
tree19d834ee03280d68bf5de1f7df5d0926f9cc668c
parentadc908cb53df1538ce10018b72da3f4534eddd96 (diff)
downloadethos-u-core-platform-d89ee0d46f849485484808e964d2d6f6ccb72158.tar.gz
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
-rw-r--r--applications/message_handler/main.cpp13
1 files 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;