电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第5讲_异常与中断VIP免费

第5讲_异常与中断_第1页
1/48
第5讲_异常与中断_第2页
2/48
第5讲_异常与中断_第3页
3/48
成都信息工程学院3+1创新实验班-113/12/225LECTURE异常与中断陈子为成都信息工程学院3+1创新实验班-113/12/22对本部分的要求了解异常与中断的基本概念、处理流程掌握中断的程序编制方法掌握外部中断的使用方法了解中断嵌套成都信息工程学院3+1创新实验班-113/12/221、ARM异常与中断´¦ÀíÆ÷ÄÚ²¿µÄÖжϹÜÀí²¿¼þ´¦ÀíÆ÷Òì³£ÇëÇó…ÖжÏÓÅÏÈÅŶÓÂß¼­…1/0...1/01/0ÖжÏÔ´1ÖжÏÔ´2ÖжÏÔ´n¿ÉÆÁ±ÎÖжÏÇëÇó¿ÉÆÁ±ÎÖжÏÇëÇó¿ÉÆÁ±ÎÖжÏÇëÇó·ÇÆÁ±ÎÖжÏÇëÇóÖÐ¶ÏÆÁ±Î¿ØÖƼĴæÆ÷´¦ÀíÆ÷ÍⲿµÄÖжϿØÖÆÆ÷中断管理机构示意图成都信息工程学院3+1创新实验班-113/12/22ARM异常(中断)异常名称含义复位系统加电,系统复位未定义指令当ARM处理器或者协处理认为当前指令未定义软件中断用户定义的中断指令,可用于用户模式下程序调用特权操作指令。在RTOS中可以通过该机制实现系统功能调用指令预取中止处理器预取指令地址不存在,或者该地址不允许当前指令访问数据访问中止数据访问指令目标地址不存在,或者该地址不允许当前指令访问外部中断请求处理器的外部中断请求有效快速中断请求处理器的外部快速请求中断有效成都信息工程学院3+1创新实验班-113/12/22ÖжÏÌø×ªÖ¸ÁîÖжϣ¨Òì³££©ÏòÁ¿±í±»ÖжϵijÌÐòµÚÒ»´ÎÌø×ª£¨Ó²¼þ£©µÚ¶þ´ÎÌø×ªÖжϣ¨Òì³££©·þÎñ³ÌÐòARM响应中断(异常)时的两次跳转成都信息工程学院3+1创新实验班-113/12/22ARM异常向量表异常类型向量地址优先级复位0x000000001未定义的指令0x000000046软件中断0x000000086指令预取中止0x0000000C5数据访问中止0x000000102保留0x00000014未使用外部中断请求0x000000184快速中断请求0x0000001C3成都信息工程学院3+1创新实验班-113/12/22普通中断(IRQ)与快中断(FIQ)中断服务程序在处理外设事务之前必须进行现场保护,处理完后需恢复现场(压栈与弹栈)STMFDR13!,{R0,R4-R12,LR};压栈LDMFDR13!,{R0,R4-R12,PC};弹栈专门为快中断设置了一个FIQ模式,并配置了较多的私有寄存器(即R8_fiq~R14_fiq),这样R8~R14无需压栈、弹栈,节约时间,加快速度FIQ的中断向量在中断向量表的最后(即0x0000001C),中断服务程序可直接存放在0x0000001C开始处,无需跳转,加快速度成都信息工程学院3+1创新实验班-113/12/22ARM异常处理流程当一个异常发生时,ARM处理器按照如下方式进入异常:1)将CPSR中的内容复制到SPSR_mode中(例如SPSR_irq)。保存处理器当前状态、中断屏蔽位以及各条件标志位。2)切换到mode模式(例如IRQ模式)。并设置为ARM状态、禁止中断。通过设置当前状态寄存器CPSR的相应位来实现。成都信息工程学院3+1创新实验班-113/12/22NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志oVerflow进位或借位扩展Carry零Zero负或小于NegativeIRQ禁止InterruptFIQ禁止Fast状态位Thumb模式位ModeIM0M1M2M3M4T1001001中断后,IRQ置位,即进入中断响应状态后,ARM自动关闭中断使能,禁止再次中断。所以缺省情况下ARM中断是不可重入的(即不能中断嵌套)。如想中断嵌套,需手工修改该位为0.注意:此时FIQ仍是允许的例如:;使能IRQvoid­enable_IRQ{­­int­r1;­­­­__asm­­­­­{­­MRS­r1,cpsr­­­­­­­­BIC­­r1,r1,#0x80­­­­­­­­MSR­cpsr_c,r1­­­­­}}成都信息工程学院3+1创新实验班-113/12/223)将寄存器LR_mode(例如LR_irq)设置成返回地址,并立即对LR进行一个自动的更新动作:LR=LR-0x4。4)将程序计数值PC设置成该异常的异常向量地址,从而跳转到相应的异常处理程序处执行。注意:任何异常发生时都必须要做这些工作(1~4步),所以这些工作直接由ARM处理器来代劳,即这些操作是由ARM内核自动完成的,不需要程序员考虑。成都信息工程学院3+1创新实验班-113/12/22void­FIQ_Exception(void){­­­{FIQ中断...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第5讲_异常与中断

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部