- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
.异常(Exceptions)当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当前处理器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,处理器会按固定的优先级对多个异常进行处理。1、对异常的响应:按以下步骤操作(1)将下一条指令的地址存入相应连接寄存器LR。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量。这样,异常处理程序就不需要确定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。例如:在软件中断异常SWI中,指令MOVPC,R14_svc总是返回到下一条指令,而不管SWI是在ARM状态执行,还是在Thumb状态执行。(2)将CPSR复制到相应的SPSR中。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。2、从异常返回:进入异常处理前可以设置中断禁止位,以禁止异常处理时对中断的响应。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。异常处理完毕之后,执行以下操作从异常返回:(1)将连接寄存器LR的值减去相应的偏移量后送到PC中。(2)将SPSR复制回CPSR中。(3)若在进入异常处理时设置了中断禁止位,要在此清除。3、各类异常的具体描述(1)FIQ(快速中断请求)(2)IRQ(中断请求)(3)Abort(中止)(4)SoftwareInterrupt(软件中断)(5)UndefinedInstruction(未定义指令)异常进入/退出表中总结了进入异常处理时保存在相应R14中的PC值,及在退出异常处理时推荐使用的指令。异常向量及异常处理应用程序中的异常处理:当系统运行时,异常可能会随时发生。为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序。当异常处理完成以后,返回到主程序继续执行。各异常向量地址如表所示。当多个异常同时发生时,系统根据固定的优先级决定异常的处理顺序。异常优先级由高到低的排列次序为:复位、数据中止、FIQ、IRQ、预取指令中止、未定义指令、SWI。2.2.7ARM微处理器的指令集*加载/存储型,指令集仅能处理寄存器中的数据,处理结果要放回寄存器中。跳转指令数据处理指令程序状态寄存器(PSR)处理指令加载/存储指令协处理器指令异常产生指令1、ARM指令集*1)跳转指令:实现程序流程的跳转直接向程序计数器PC写入跳转地址值,可在4GB地址空间中的任意跳转MOVLR,PC;保存将来的返回地址值从当前指令向前或向后的32MB地址空间的跳转,有4条指令:(1)B指令:B{条件}目标地址(2)BL指令:BL{条件}目标地址(3)BLX指令:BLX目标地址(4)BX指令:BX{条件}目标地址2)数据处理指令(1)MOV指令:加载数据MOV{条件}{S}目的寄存器,源操作数如:MOVR1,R0MOVPC,R14MOVR1,R0,LSL#3(2)MVN指令:取反后加载数据MVN{条件}{S}目的寄存器,源操作数(3)CMP指令:比较数据CMP{条件}操作数1,操作数2(4)CMN指令:取反后比较CMN{条件}操作数1,操作数2(5)TST指令:按位与运算TST{条件}操作数1,操作数2(6)TEQ指令:按位异或TEQ{条件}操作数1,操作数2(7)ADD指令:相加并存储ADD{条件}{S}目的寄存器,操作数1,操作数2(8)ADC指令:相加并加上标志位,再存储ADC{条件}{S}目的寄存器,操作数1,操作数2(9)SUB指令:相减并存放在目的寄存器(10)SBC指令:相减并减去标志位,再存放在目的寄存器(11)RSB指令:逆向减法,再存放在目的寄存器(12)RSC指令:逆向减法,再减去标志位,再存放在目的寄存器(13)AND指令:操作数逻辑与运算(14)ORR指令:
您可能关注的文档
- 小学五年级科学食物链和食物网.ppt
- 学校大塘中心小学课件.ppt
- 性格与沟通(以PDP人际沟通风格测试为例).ppt
- 建队日主题队会课件.ppt
- 建筑电气施工图识读讲解.ppt
- 平行四边形之七巧板.ppt
- 常用化疗药注意事项.ppt
- 常见周围血管疾病的彩超检查.ppt
- 2024-2030全球热塑性淀粉合金行业调研及趋势分析报告.docx
- 2024年全球及中国氮化硅纤维行业头部企业市场占有率及排名调研报告.docx
- 2024-2030全球无菌手术包布行业调研及趋势分析报告.docx
- 2024年全球及中国铜基非晶合金行业头部企业市场占有率及排名调研报告.docx
- 2024-2030全球纸浆模塑一次性餐具行业调研及趋势分析报告.docx
- 2024-2030全球生牛养殖业行业调研及趋势分析报告.docx
- 2024年全球及中国XBC光伏电池行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国树脂绝缘干式双分裂光伏变压器行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国光腔衰荡监测仪行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国宠物碗行业头部企业市场占有率及排名调研报告.docx
- 2024-2030全球气动震动刀行业调研及趋势分析报告.docx
- 2024-2030全球螺丝加工服务行业调研及趋势分析报告.docx
文档评论(0)