What are the various ways to disable and re-enable interrupts in STM32 microcontrollers in order to implement atomic access guards?

Multiple ways to enable/disable interrupts in STM32 mcus: 1. Via ARM-core CMSIS: 1.A. For global interrupts __enable_irq() // enable all interrupts __disable_irq() // disable all interrupts // Returns the current state of the priority mask bit from the Priority Mask // Register. [0 if global interrupts are **enabled** and non-zero if they // are **disabled**] … Read more

What is the difference between FIQ and IRQ interrupt system?

ARM calls FIQ the fast interrupt, with the implication that IRQ is normal priority. In any real system, there will be many more sources of interrupts than just two devices and there will therefore be some external hardware interrupt controller which allows masking, prioritization etc. of these multiple sources and which drives the interrupt request … Read more