From e263420ea33d7ad9b8182642ed565ad6cea13010 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Fri, 24 Jun 2016 11:32:24 -0700 Subject: [PATCH] Enable M4 interrupt on M0 core only when M4 image is running. --- firmware/application/baseband_api.cpp | 4 ++++ firmware/application/event_m0.cpp | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index a1eb30cb..71c41fe9 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -85,9 +85,13 @@ void stop() { void run_image(const portapack::spi_flash::region_t image_region) { m4_init(image_region, portapack::memory::map::m4_code); + + creg::m4txevent::enable(); } void shutdown() { + creg::m4txevent::disable(); + ShutdownMessage shutdown_message; shared_memory.baseband_queue.push_and_wait(shutdown_message); } diff --git a/firmware/application/event_m0.cpp b/firmware/application/event_m0.cpp index 6d387cf0..7966152a 100644 --- a/firmware/application/event_m0.cpp +++ b/firmware/application/event_m0.cpp @@ -105,14 +105,10 @@ EventDispatcher::EventDispatcher( } void EventDispatcher::run() { - creg::m4txevent::enable(); - while(is_running) { const auto events = wait(); dispatch(events); } - - creg::m4txevent::disable(); } void EventDispatcher::request_stop() {