Compare commits
5 Commits
e1fe61c864
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ff920da0b6 | |||
| 76c0e0ef02 | |||
| e9e543d813 | |||
| d8b5a6f330 | |||
| 9a597748a2 |
33
notes/9.md
Normal file
33
notes/9.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 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
|
||||
|
||||
1. start `main`
|
||||
1. if interrupt signal detects
|
||||
2. processor stops `main`
|
||||
3. auto stacking `PUSH {r0 ... r3, r12, lr, pc, psr}`
|
||||
2. `pc = memory address of SysTick_Handler`
|
||||
3. execute ISR
|
||||
4. Interrupt Returns. Active bits will be cleared
|
||||
1. Auto unstacking `POP {r0 ... r3, r12, lr, pc, psr}`
|
||||
5. 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.
|
||||
|
||||
## Exception Exits
|
||||
|
||||
BIN
pdf/L10.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/L10.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/L11.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/L11.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/L9.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/L9.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/P2.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/P2.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/P3.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/P3.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/P4.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/P4.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
pdf/P5.pdf
(Stored with Git LFS)
Normal file
BIN
pdf/P5.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
Reference in New Issue
Block a user