欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 单片机类型 >> ARM系列 >> 文章正文

标准中断步骤(IRQ)

标准中断步骤(IRQ):

1. AIC已经正确编程,AIC_SVR也已经写入正确的中断服务程序的入口地址。且中断已经

使能

2. 地址0x18(IRQ的中断向量地址)的指令为

LDR PC,[PC,#&F20]

当NIRQ到来,且CPSR的I位为0时,步骤如下:

① CPSR被拷贝到SPSR_irq,当前程序计数器PC的值被保存到IRQ链接寄存器(R14_irq),同时PC(R15)自身也被赋予了新值0x18。在接下来的时钟里(处理器向0x1C取指令),ARM核使R14_irq减4

②ARM内核进入IRQ模式

③当指令LDR PC,[PC,#&F20]得到执行(ARM为流水线结构,当前PC之前还有两条指令)后,PC被赋予了AIC_IVR的内容。读取AIC_IVR具有如下作用:

·将当前中断设置为被挂起的最高优先级中断,并把它作为最高优先级的中断;当前中断级别则设置为此中断的优先级。

·将NIRQ的信号撤消(即使系统没有用到向量功能,也必须去读AIC_IVR,以便将NIRQ撤消)。

·如果中断为边沿触发,则读取AIC_IVR会自动将中断清除

·将当前的中断的优先级推入堆栈

·返回当前中断的AIC_SVR的值。

④上述步骤将程序跳到了对应的中断服务程序。接下来的第一步是保存链接寄存器LR(R14_irq)和SPSR(SPSR_irq)。如果需要在中断返回时,把LR的值直接赋给程序计数器,则LR首先要减去4才能保存。否则在中断返回时,LR要首先减去4之后才能拷贝给PC。

⑤清零CPSR的位I就可以使其他中断不被屏蔽,再施加的NIRQ可以被内核接受。只要发生的中断的优先级高于当前中断的优先级,嵌套中断就会发生。

⑥接着中断例程可以保存相应的寄存器以保护现场。如果此时有高优先级中断发生,则处理器将重复执行从步骤①开始的动作。要注意的是,如果中断是电平敏感的,那么在中断结束前要清除中断源。

⑦在退出中断前要首先置位CPSR的位I,以便屏蔽其他中断,保证多个中断有序地完成。

⑧在结束中断之前还必须执行一次对AIC_EOICR的写操作,向AIC表明中断已经完成。存放于堆栈的前一个当前中断优先级将被弹出并作为当前中断优先级。如果此时系统又有一个挂起的中断,其优先级比刚才结束的中断的优先级低(或相等)、但又高于从堆栈弹出来的中断的优先级,则将重新施加NIRQ;但是,中断步骤不会立即开始,因为此时CPSR的I位是置位的。

⑨SPSR(SPSR_irq)被恢复。最后是链接寄存器LR恢复到PC。程序返回到中断发生前之处。SPSR也恢复为CPSR,中断屏蔽状态恢复为SPSR所指明的状态。

注:SPSR的位I是很重要的。如果在SPSR恢复之后为置位状态,则表明ARM核正要屏蔽中断,在执行屏蔽指令时被中断。因此,SPSR恢复后,屏蔽指令得以完成,亦即I被置位, 因而IRQ 被屏蔽。

“单片机之路”的网址:www.mcuway.com

普通文章与电源管理有关的技术问答
普通文章关于复位源和其他C8051F单片机的技术
普通文章关于开发工具及调试的技术问答
普通文章JTAG与ISP的区别
普通文章单片机振荡器技术问答
普通文章有关IDE(集成开发环境)的技术问答
普通文章uPSD系列8 位单片机概述
普通文章电子工程师的心声
普通文章一个嵌入式工程师的忠告
普通文章单片机的发展之路
普通文章一位电子前辈的心得体会
普通文章单片机应“做中学”
普通文章给年轻IC解密和芯片解密工程师的十大
普通文章MC-S51单片机简介
普通文章C8051F单片机使用经验总结
普通文章单片机中的看门狗
普通文章C8051F系列单片机简介
普通文章总结C8051F系列单片机的特点
普通文章单片机入门资料
普通文章C8051F单片机使用注意事项
普通文章对传统51、pic、avr mega、STC 51系列
普通文章总结STC89C51RC比8052单片机多出来的
普通文章51单片机的几种开发方法
普通文章热电偶用补偿导线延伸型与补偿型电缆
普通文章从51初学者到电子工程师(第四课)

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电容器的基础知识及检测方…
    普通文章可控硅的特性于检测
    普通文章电阻的使用
    普通文章芯片封装

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com