cancel
Showing results for 
Search instead for 
Did you mean: 

How does STM32F103RB handle Interrupts?

Muzahir Hussain
Associate III
Posted on October 28, 2017 at 11:29

Does it save all the registers of the current process before executing the ISR? If so, how does it save the registers? Does it do it by pushing all registers in stack?

#stm32f103xx #interrupts
2 REPLIES 2
Posted on October 28, 2017 at 16:12

Please review documentation for the Cortex-M3 core, ARM has Technical Reference Manuals, and Joseph Yiu's Essential Cortex-Mx series books has good coverage of the CPU and NVIC functionality.

It pushes a subset of the registers, well documented, easily findable..

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
S.Ma
Principal
Posted on October 28, 2017 at 16:46

Generally speaking, the compiler and linker should take care of pushing/popping the needed registers in the stack for you peace of mind. The main exception is when floating point copro and registers are used within an ISR. This may require manual #pragma handling, or better, avoid using floats within an interrupt. Even in Android, drivers are avoiding floats within interrupts.