863 B
863 B
Interrupts (1)
ARMv7-M Interrupt Handling
- 1 NMI supported
- Up to 511(496 external, 15 internal) prioritizable interrupts/exceptions supported
- NVIC is highly coupled with processor
ISR Vector Table
Interrupt Handling Process
- start
main- if interrupt signal detects
- processor stops
main - auto stacking
PUSH {r0 ... r3, r12, lr, pc, psr}
pc = memory address of SysTick_Handler- execute ISR
- Interrupt Returns. Active bits will be cleared
- Auto unstacking
POP {r0 ... r3, r12, lr, pc, psr}
- Auto unstacking
- continue
main
Stacking and Unstacking
When Interrupts, it automatically stacking r0, r1, r2, r3, r12, lr, pc, psr.
When Exiting Interrupts, it automatically unstacking r0, r1, r2, r3, r12, lr, pc, psr.
It is done by hardware, not software.