From 7e4cdaeaca77d371f820db37c64921c557c06546 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sun, 25 Jul 2021 09:15:36 +0200 Subject: [PATCH] Patched mixer scheduler related interrupts with the correct prio --- radio/src/targets/common/arm/stm32/heartbeat_driver.cpp | 9 ++++++++- .../targets/common/arm/stm32/mixer_scheduler_driver.cpp | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/heartbeat_driver.cpp b/radio/src/targets/common/arm/stm32/heartbeat_driver.cpp index d99fa5876..53ea76a3e 100644 --- a/radio/src/targets/common/arm/stm32/heartbeat_driver.cpp +++ b/radio/src/targets/common/arm/stm32/heartbeat_driver.cpp @@ -22,6 +22,9 @@ #include "mixer_scheduler.h" #if defined(INTMODULE_HEARTBEAT_GPIO) + +#include "FreeRTOSConfig.h" + volatile HeartbeatCapture heartbeatCapture; void init_intmodule_heartbeat() @@ -46,7 +49,11 @@ void init_intmodule_heartbeat() EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); - NVIC_SetPriority(INTMODULE_HEARTBEAT_EXTI_IRQn, 0); // Highest priority interrupt + NVIC_SetPriority(INTMODULE_HEARTBEAT_EXTI_IRQn, + // Highest priority interrupt + // TODO: replace with a define... + configMAX_SYSCALL_INTERRUPT_PRIORITY); + NVIC_EnableIRQ(INTMODULE_HEARTBEAT_EXTI_IRQn); heartbeatCapture.valid = true; } diff --git a/radio/src/targets/common/arm/stm32/mixer_scheduler_driver.cpp b/radio/src/targets/common/arm/stm32/mixer_scheduler_driver.cpp index 7f7b23a1c..a430c4fbb 100644 --- a/radio/src/targets/common/arm/stm32/mixer_scheduler_driver.cpp +++ b/radio/src/targets/common/arm/stm32/mixer_scheduler_driver.cpp @@ -23,6 +23,8 @@ #if !defined(SIMU) +#include "FreeRTOSConfig.h" + // Start scheduler with default period void mixerSchedulerStart() { @@ -36,7 +38,9 @@ void mixerSchedulerStart() MIXER_SCHEDULER_TIMER->EGR = TIM_EGR_UG; // reset timer NVIC_EnableIRQ(MIXER_SCHEDULER_TIMER_IRQn); - NVIC_SetPriority(MIXER_SCHEDULER_TIMER_IRQn, 8); + NVIC_SetPriority(MIXER_SCHEDULER_TIMER_IRQn, + // TODO: replace with a define... + configMAX_SYSCALL_INTERRUPT_PRIORITY); MIXER_SCHEDULER_TIMER->SR &= TIM_SR_UIF; // clear interrupt flag MIXER_SCHEDULER_TIMER->DIER |= TIM_DIER_UIE; // enable interrupt