黄色大片在线免费观看_黄色大全下载_黄色的app下载_黄色的软件大全_亚洲国产不卡_亚洲国产成人91porn

信盈达—您身边的嵌入式&人工智能专家
全国免费咨询热线:400-8788-909

嵌入式培训:arm处理器异常返回地址

时间:2018-08-26 00:00:00 来源:信盈达 作者:信盈达

ARM处理器中一条指令的执行分为取指、译码、执行三个阶段,由于指令流水线的存在造成当前执行的指令的地址是PC-8(ARM指令集),那么当前执行指令的下一条指令的地址应该是PC-4,所以在异常产生时处理器会将PC-4的值保存到对应模式的LR寄存器中,但是该返回地址是否能够被使用还要看具体产生的异常的种类而定。

 

FIQ与RIQ异常:

 

FIQ与RIQ异常返回处理是一样的,当处理器执行完当前指令后才去查询中断且查看是否允许中断,如果处理器产生了中断,这时PC的值已经更新,即PC指向了当前指令后第三条指令的位置(被中断指令地址加12),产生FIQ与RIQ异常后处理器将PC-4的值保存到了对应模式下的LR,而它指向的是当前被中断指令的后面的第二条指令,因此在返回时我们需要人为的将LR中保存的值自减4以得到正确的返回地址。

 

预取指中止异常:

 

在指令预取时如果地址是非法的,该指令就被标记为有问题的指令,流水线上该指令之前的指令继续执行,当执行被标记为有问题的指令的时候,处理器就会产生异常。产生该异常终返回时需要返回到被标记的指令处重新读取并执行该指令,因此异常返回时需要返回到该指令处而不是该指令的下一条指令。所以在中断返回时我们需要人为的对LR中保存的值自减4。

 

指令未定义异常:

 

指令未定义异常由当前正在执行的指令产生,即产生异常时PC的值还没有更新,PC的值指向当前指令后面第二条指令,产生异常后LR中保存的指令是当前指令的下一条指令的地址,所以异常返回时直接把LR的值给PC即可不许人为的去修正返回地址。

 

软中断异常:

 

软中断异常与指令未定义异常一样,也是当前指令在执行过程中就产生了异常,所以LR中保存的返回地址是当前软中断指令的下一条指令的地址,不需要人为的去修正,返回时直接将LR的值赋给PC即可。

 

数据中止异常:

 

产生该异常的时候程序要返回到有问题的指令处重新访问该数据,因此应该返回到产生异常的指令处而不是产生异常指令的下一条指令处。当异常产生时PC的值已经更新,所以PC指向的是异常产生指令的后面的第三条指令,而LR中保存的是PC-4的值即异常产生指令的后面的第二条指令的地址。所以在返回时我们需人为的对LR中的值进行自减8的处理。以保证异常正确的返回。

 

上述每一种异常发生时,返回地址都要根据具体的异常类型进行重新修正。


信盈达2008年在深圳特区南山高新科技园成立。自成立至今近九年来专注为企业和个人提供高端方案设计、高端嵌入式/Android培训等服务。公司下设信盈达实训学院、信盈达研发中心、信盈达教学仪器三大业务板块。九年来公司坚持"技术领先、服务领先",以雄厚的实力和专业的品质成为国内唯一有实力从产品最底层研发到系统层开发的嵌入式实训、产品解决方案提供商。为中国IT行业提供最具价值的职业教育服务。专业嵌入式、物联网、人工智能Java、单片机等课程,想了解更多信息点击立马咨询

主站蜘蛛池模板: 九九免费精品视频在这里 | 日本aⅴ精品一区二区三区久久 | 国产精品毛片无码 | 国产成人aa在线观看视频 | 精品视频一区二区 | 欧美极品高清晰免费视频 | 久久精品国产一区二区 | 精品国产免费观看一区 | 国产高清美女一级毛片久久 | 欧美日韩精品免费一区二区三区 | 高清日本在线成人免费视频 | 澳门一级毛片手机在线看 | 欧美激情视频在线观看 | 青青草免费在线视频观看 | 国产成人精品福利站 | 国产高颜值露脸在线观看 | 91伊人网| 欧美综合图区亚欧综合图区 | 欧美日韩在线免费 | 国产精品久久久久秋霞影视 | 日本美女黄色一级片 | 99久久成人 | 日韩高清特级特黄毛片 | 国产亚洲一区二区三区啪 | 日本xxx在线播放 | 国产精品久久久视频 | 精品不卡一区中文字幕 | 欧美成人午夜免费福利785 | 国产在线看片护士免费视频 | 国产成人福利夜色影视 | 国产成人精品一区二区免费 | 青青青青草原国产免费 | 国产亚洲精品久久久久久久网站 | 国产精品久久国产三级国不卡顿 | 日本精品一区二区三区在线观看 | 毛片国产 | 国产在线精品一区二区三区不卡 | 久久成人国产 | 日本一级片在线播放 | 精品综合一区二区三区 | 青青久久|