- 4
- 0
- 约6.22千字
- 约 33页
- 2017-12-24 发布于湖北
- 举报
I/O端口及中断控制器
⑸ IRQ中断服务程序 在IRQ中断服务程序中,要根据中断偏移寄存器值并结合中断向量表,转到中断请求对应的服务程序,部分汇编语言程序如下: IsrIRQ;标号 SUB SP,SP,#4;修改栈指针,在栈顶留出4字节空间STMFD SP!{R8-R9};保存R8,R9 LDR R9,=INTOFFSET;取中断偏移寄存器INTOFFSET地址 LDR R9,[R9];读中断偏移寄存器值 LDR R8,=HandleEINT0;取中断向量表首地址 ADD R8,R8,R9,LSL #2;由中断偏移寄存器INTOFFSET中偏移 ;量乘以4,加中断向量表首地址, ;得到对应中断在向量表中的地址 LDR R8,[R8];从向量表中取中断请求对应的服务 ;程序入口地址到R8 STR R8,[SP,#8];R8存堆栈 LDMFD SP!,{R8-R9,PC};从堆栈将原R8(对应中断入口地址) ;内容送PC,转移到对应中断服务程序,
原创力文档

文档评论(0)