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
R0
-R3
,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 ...
Get ARM® Cortex® M4 Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.