Handling interrupts in assembly language
ARM Cortex interrupt handlers can be programmed completely in C, but programmers coding time-critical applications prefer to use assembler (some programmers claim, rather ambitiously, that their hand-crafted assembler programs run up to 30-times faster than compiler generated code, but I suspect that the actual figure is 2-3 times).
When an interrupt (also known as an exception) occurs, the processor responds by performing the following actions:
- Pushing Registers
R12, link register (
LR), program counter (
PC), and program status (
PSR) onto the stack
- Reading the address of the exception handler from the interrupt vector table
- Updating the stack pointer, program status, link register, and program counter ...