历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2020年03月16日 | ARM的异常返回

2020-03-16 来源:eefocus

异常返回有3类,我这只解释两类,第三类我没有理解,后续会看看linux kernel怎么做的。


1)从swi和未定义指令返回


ARM  

SWI     pc-8   ;异常发生处

指令1   pc-4   ; 程序返回的地方, LR=下一条指令

指令2   pc     ;pc当前值

异常是由指令本身引起的,PC、LR的值没有更新,CPSR模式就已经更改了,而当前执行的产生异常的执行是不希望再次执行的,所以返回指令为


MOVS PC,LR


2)从fiq,irq中断和预取异常返回

ARM

指令1   pc-12    ;异常发生在这条指令执行期间

指令2   pc-8     ;异常返回后需要回到执行的指令

指令3   pc-4     ;arm LR=下一条指令

指令4   pc       ;

异常在当前指令执行完毕后响应,此时pc的值已经更新了,而lr也跟着为pc的decode阶段指令(三级流水线),所以为了异常执行完毕后返回现场


MOVS PC,LR,#4


3)从数据异常返回


推荐阅读

史海拾趣

GigPeak公司的发展小趣事

为了进一步增强市场地位和扩大产品线,GigPeak在2010年实施了一项重要的并购战略。公司成功收购了另一家在光纤通信领域具有深厚技术积累的企业,这次并购不仅为GigPeak带来了先进的产品线和研发资源,还显著提升了其在全球市场的份额。通过整合双方的优势资源,GigPeak在光纤通信领域的技术实力和市场份额均实现了质的飞跃。

ADDtek公司的发展小趣事

GigPeak公司自成立之初,便专注于高速数据传输技术的研发。在2005年,公司研发团队成功开发出一种新型的光电转换器,该转换器能够在极低的功耗下实现前所未有的数据传输速率。这一技术创新迅速吸引了业界的关注,并成功应用于多个高端数据中心项目,帮助GigPeak在竞争激烈的市场中脱颖而出。随着技术的不断迭代和市场的广泛认可,GigPeak逐渐成为了高速数据传输领域的领军企业。

ACI [Applied Concepts, Inc.]公司的发展小趣事

在电子行业的激烈竞争中,ACI公司凭借其卓越的技术创新能力脱颖而出。公司研发团队不断攻克技术难关,推出了一系列具有竞争力的电子产品。这些产品不仅性能卓越,而且设计独特,满足了消费者的多样化需求。通过技术创新,ACI成功打开了市场,赢得了消费者的青睐。

Elpress AB公司的发展小趣事

Elpress AB始终将质量管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。为了进一步提升产品质量和管理水平,Elpress AB于1992年获得了ISO 9001认证,成为电气连接领域的领军企业之一。此后,公司还通过了ISO 14001:2015环境管理体系认证,积极履行环保责任。

DURACELL公司的发展小趣事

DURACELL公司自成立以来,一直致力于提供高品质的电池产品。公司不断投入研发资源,推动电池技术的创新。金霸王碱性电池以其“卓越品质,持久电力”的出众品质行销全球近百个国家和地区。此外,DURACELL公司还积极拓展产品线,生产和销售锂电池等高性能电池产品,以满足不同领域的需求。

BeagleBoard公司的发展小趣事

随着技术的不断进步,BeagleBoard公司始终保持着对创新的追求。他们不断研发新的技术,优化产品设计,推出了一系列具有创新性的产品。其中,BeagleBone Black是该公司的一款明星产品,它集成了高性能处理器、丰富的外设接口和强大的扩展能力,为开发者提供了更加便捷的开发体验。此外,公司还推出了工业宽温应用的变体,以满足不同领域的需求。

问答坊 | AI 解惑

高速PCB设计EMI规则探讨(二)

规则五:高速PCB设计的布线方向规则 相邻两层间的走线必须遵循垂直走线的原则,否则会造成线间的串扰,增加EMI辐射,如下图: 此主题相关图片如下: 相邻的布线层遵循横平竖垂的布线方向,垂直的布线可以抑制线间的串扰。 规则六:高速PCB设计 ...…

查看全部问答>

串口ReadPortThread读到数据后,怎样正确显示出来?

DWORD WINAPI ReadPortThread(LPVOID lpvoid) { BYTE Byte;     DWORD dwCommModemStatus,         dwBytesTransferred;     CString tempStr;     // Specify a set of events ...…

查看全部问答>

vxWorks 组件

vxWorks中的组件很多,还都是英文的,不太方便。 请问有没有翻译好的,并且概述每个组件功能的网站或者电子书。 谢谢了!…

查看全部问答>

液晶1602显示源代码

液晶1602显示源代码 #include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit en=P2^0;sbit rs=P2^1;uchar code table[]=\"I LOVE YOU\";uchar code table1[]=\"FOREVER MAMA!\";uchar num;void delay(uint z);void write ...…

查看全部问答>

程序跳转

void send (uchar n) {     SBUF=n;     while(!TI)   ;    TI=0; }   void main() {    SP=0x30;    init_cpu();   //这个函数设置串口通讯 &n ...…

查看全部问答>

反激式开关电源变压器设计的详细步骤

85W反激变压器设计的详细步骤1. 确定电源规格. 1).输入电压范围Vin=90—265Vac; 2).输出电压/负载电流:Vout1=42V/2A, Pout=84W 3).转换的效率ŋ=0.80    Pin=84/0.8=105W 2. 工作频率,匝比, 最低输入电压和最大占空 ...…

查看全部问答>

Verilog HDL练习题和Verilog基础知识适合verilog新人.rar

Verilog HDL练习题和Verilog基础知识适合verilog新人 Verilog的135个经典设计实例…

查看全部问答>

74ls192芯片

怎么解决倒数计时器中的,在倒数计时的过程中不能置数啊,用的是74ls192芯片(置数端11号腿怎么接啊)…

查看全部问答>

如何用MSP 430(WIZNET W5200)启动服务器以太网扩充包?

$(\'swf_mko\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XNDQ3NDE1NzQw/v.sw ...…

查看全部问答>

Altium Designer14版与10版比较(转)

作者:朱长江     Altium Designer 14是Altium公司于2013年10月推出的Altium Designer最新版本。该版本比10版在界面和功能上都有了相当大的改进。笔者作为10版的深度用户,自然很想知道14版相对于10版,到底在那些方面,带来了 ...…

查看全部问答>