SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32

false condition if statement getting executed inside ISR


I’m sorry Bernard, My bad.
You were right :-)
I added a counter to watch how many time the ISR was executed. I noticed that code was interrupted anywhere from 15 to 100 times every time the signal switched. What caused me to believe it wasn’t a bouncing issue was that the exact same code ran perfectly well on my STM32F411 but behaved funny on the F303 Motor Control Board (Obviously because of the speed of operation). I do have debouncing hardware and my scope however doesn’t show any noise at a fair scale. I believe I can’t do much to the hardware.
Is there a way I can control the Interrupt Handler ?
I would like prevent interruption for 1µs after a trigger detection.


The simplest way to go, as you measure time between the last interrupt, is to just ignore any interrupt occuring less than x µs after a previous interrupt. Thus the first switch will be taken into account, then all bounce IRQs will be ignored waiting for at least x µs without any interrupt.

If you have ONLY one GPIO generating interrupts on the port where you connect the EXTI interrupt, then you may disable this IRQ in the NVIC, arm a timer for x µs, then re-enable teh EXIT interrupt in the NVIC when the timer expires; that is a bit more complex, but will cost less CPU cycles...

Bernard (Ac6)