您的位置 首页 系统

ARM反常回来PC地址剖析

重要基础知识:R15(PC)总是指向正在取指的指令,而不是指向正在执行的指令或正在译码的指令。一般来说,人们习惯性约定将正在执行的指…

重要基础知识:R15 (PC)总是指向“正在取指”的指令,而

不是指向“正在碑文”的指令或正在“译码”的指令。一般来说,

人们习惯性约定将“正在碑文的指令作为参考点”,称之为当

前第一条指令,因而PC 总是指向第三条指令。当ARM

态时,每条指令为4 字节长,所以PC 一直指向该指令地址

加8 字节的地址,即:PC 值=当时程序碑文方位+8;

而ADS 中的pc,是为了调试看着便利而修改正的,它指向

的是正在碑文的指令,即“真实pc-8”!!!!!

这部分内容能够参看ARM 体系结构与编程清华大学出版社 杜春雷第九章反常间断处理

1.SWI和和未定义指令反常间断的回来:

指令地址

A PC-8 当时指令为SWI 或未定义指令此刻产生间断.PC 的值还没有更新.

A+4 PC-4 间断时处理器将PC-4 保存到LR ;lr!

A+8 PC

回来时,从产生间断的指令A(PC-8)的下一条指令A+4(PC-4)处开端碑文,所以直接

把LR 的值赋给PC 就行了,详细指令为MOV PC,LR (PC=A+4=LR)

文言解说:关于SWI 和未定义指令反常:

产生反常时pc 没有更新,依据ARM 的三级流水线原理,pc 没有更新,依然等于(A+8);

lr = pc –4(这时处理器决议的,无法更改!)即A+4

我们这类反常回来后应碑文下一条指令(A+4),所以回来时,pc = lr 即可

2.IRQ 和FIQ 反常间断处理的回来:

指令地址 对应于PC

A PC-8 碑文此指令完成后(!)查询IRQ 及FIQ,如果有间断请求则产生间断.

A+4 PC-4

A+8 PC ;lr!

(此刻PC 的值现已更新,指向A+12.将当时PC-4(即A+8)

保存到LR.回来时,要接着碑文A+4(LR-4)处的指令,所以回来指令为

SUBS PC, LR,#4(PC=A+4=LR-4)

———————– Page 2———————–

文言解说:关于普间断和快间断反常:

间断有必要在一条指令碑文完今后被检测到,如正在碑文指令甲时产生了间断,不等指令甲碑文完是不

会处理该间断的,产生反常时pc 现已更新(A+12);

lr = pc –4(这时处理器决议的,无法更改!)即A+8

回来后,应碑文被间断而没有碑文的指令(上面的A+4),所以回来时,pc = lr-4

3,指令预取间断反常间断处理的回来:

指令地址

A PC-8 碑文本指令时产生间断,

A+4 PC-4 处理器将A+4(PC-4)保存到LR. ;lr!

A+8 PC

回来时,产生指令预取间断的指令A(PC-8)处从头碑文,所以回来指令为

SUBS PC, LR,#4(PC=A=LR-4)

文言解说:关于预取指令间断反常:

产生预取指令反常时,是在碑文时产生的反常,pc 未更新,即pc = A+8

lr = pc –4(这时处理器决议的,无法更改!)即A+4

我们这类反常回来后应从头碑文反常的那个指令(A),所以回来时,pc = lr-4

4,数据拜访间断反常间断处理的回来:

指令地址

A PC-8 本指令拜访有问题的数据,产生间断时,PC 的值现已更新

A+4 PC-4 间断产生时PC=A+12,处理器将A+8(PC-4)保存到LR.

A+8 PC ;lr!

回来时,要回来到A 处持续碑文,所以指令为SUBS PC, LR,#8.(PC=A=LR-8)

文言解说:关于数据拜访间断反常:

产生数据拜访间断反常时,是在碑文时拜访数据过错导致的反常,pc 现已更新,即pc = A+12

lr = pc –4(这时处理器决议的,无法更改!)即A+8

我们这类反常回来后应从头碑文反常的那个指令(A),所以回来时,pc = lr-8

末节:

引起PC 更新的原因一种是数据间断,还有便是间断了.

间断有必要是在一条指令碑文结束后才干被检测到,所以它间断的仅仅还未碑文的那条指令(pc – 8),

所以pc = lr –4;

与间断相同,SWI 和未定义指令反常也是回来到下一条指令(pc – 4),仅仅他们在碑文时,PC 的值并没

有更新,所以pc = lr;

 预取指令间断反常,也没有产生pc 更新,但它还得从头碑文产生反常的那条指令,所以pc = lr –4;

数据拜访间断反常,产生了pc 更新,而且它也需求从头碑文产生反常的那条指令,所以pc = lr –8;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/264558.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部