打印

ARM7 异常出/入口问题

[复制链接]
2129|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ahyjj|  楼主 | 2007-11-9 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于异常的出/入口问题查看了《ARM体系结构与编程》杜春雷 编著  第1版,还不是很明白:

第 269 页“IRQ和FIQ异常中断处理程序的返回” 一节中很清楚的说明

“当IRQ和FIQ异常中断产生时,程序计数器PC的值已更新,它指向指令后面第3条指令(对ARM指令来说,它指向当前指令地址加12个字节的位置;对THUMB指令来说,它指向当前指令地址加6个字节的位置)。当IRQ和FIQ异常中断发生时,处理器将值PC-4保存到异常模式下的LR_mode中。这时PC-4即指向当前指令后的第二条指令”   

1、为什么“这时PC-4即指向当前指令后的第二条指令”?对于THUMB指令 应该是 PC-2才对! 

2、返回时通过“SUBS PC,LR,#4”指令即可返回到中断发生时的下一条指令,而不用区分发生异常中断时是在ARM指令下还是THUMB指令下? 

请大家指教一二!

相关帖子

沙发
阿南| | 2007-11-9 18:49 | 只看该作者

建议楼主,写个程序段(或在现在的里头增加),

在仿真(或软件仿真)状态下,单步执行去验证.
这样,楼主也就学会了自己调试测试程序的方法,是必经之路.

使用特权

评论回复
板凳
ahyjj|  楼主 | 2007-11-11 01:02 | 只看该作者

RE

谢谢版主的提醒,这是ARM7内核的处理问题,做仿真是无法得出结果的呀!

使用特权

评论回复
地板
xieqin| | 2007-11-12 10:21 | 只看该作者

...

For exceptions that occur in Thumb state, the handler return instruction (SUBS pc,lr,#4)
changes the program counter to the address of the next instruction to execute. Because
the program counter is updated before the exception is taken, the next instruction is at
(PC – 4). The value stored by the processor in lr_mode is therefore PC.

使用特权

评论回复
5
ahyjj|  楼主 | 2007-11-13 16:36 | 只看该作者

re

我把问题细化一下还请各位多多指教!

  FX:  在THUMB下,有如下一段汇编指令:    I0
                                        -〉I1
                                           I2
                                           I3
                                           I4
如果当前指令流水线中 I1处于执行状态  I2处于译码状态 I3处于取指状态  则PC=I3地址

此时FIQ(IRQ)到来时,内核会将I1执行完毕然后响应异常,I1执行完毕后PC已更新即PC=I4地址。

根据《ARM体系结构与编程》及《ARM嵌入式基础教程》所述,内核紧接着内核做如下操作:

                              SUBS LR, PC, #4   ;即将PC-4送入LR

 *//由于THUMB指令是 16bit 此时LR中保存的是I2地址*/

 异常返回时内核做如下操作:   SUBS PC,LR,#4   

*//由于THUMB指令是  16bit 此时PC中得到的是I0地址,程序将从I0开始执行 

  这就很奇怪了,异常返回后我们希望的是从I2开始执行的啊!

---------------------------------------------------------------------

  如果在ARM状态下很好理解:       SUBS LR, PC, #4   ;即将PC-4送入LR
*//由于ARM指令是 32bit 此时LR中保存的是I3地址

   异常返回时内核做如下操作:     SUBS PC,LR,#4   
*//由于ARM指令是 32bit 此时LR中保存的是I2地址

                    这样恰恰是我们希望所得到的结果!!

-------------------------------------------------------------------


 我的问题不知道是否描述清楚,郁闷中ing.....................

使用特权

评论回复
6
gqh| | 2007-11-14 17:22 | 只看该作者

关注

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

44

帖子

0

粉丝