The code looks roughly like this, with the defines in mcuconf.h like STM32_IRQ_EXTI0_PRIORITY set to 0 (or CORTEX_MAXIMUM_PRIORITY) so that they can preempt the kernel.
Code: Select all
CH_FAST_IRQ_HANDLER(Vector58) {
handleExtiIsr(0);
}
CH_FAST_IRQ_HANDLER(Vector5C) {
handleExtiIsr(1);
}
CH_FAST_IRQ_HANDLER(Vector60) {
handleExtiIsr(2);
}
This all works just fine on STM32F4. However, on F7 and H7, they use the new stm32_exti0.inc shared includes pattern, which performs an extra check that the interrupt priority is legal (ie, not higher pri than kernel), so I get a compilation error. Removing the check, the code does work properly, as it does on STM32F4.
What happened to using fast interrupts on F7/H7?