打印

关于str71x的eic中断

[复制链接]
1715|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
runmo420|  楼主 | 2011-7-16 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.在eic_ivr中高16bit存放的是一条指令0xE59F,这跳指令放在该寄存器是作什么用的?它怎么会得到执行?

2.对于eic的中断机制本来觉得挺清楚,有一篇文档是《the insider's guide to the ARM STR71x》,里面叙述的比较详细:在0x18的地方放一条 LDR PC,[PC,#-0x808],如果发生了irq中断,跳到0x18,然后从eic_ivr中取出中断向量表地址放到PC中即完成跳转。但是如上面所述,eic_ivr高16bit放的是命令,并不是地址,那么PC会跳到哪里?PC是不是自动忽略掉高16bit?

3.keil提供的启动代码问题,在计算中断向量地址的时候,首地址(&T0TIMI_Addr)加上了0x7E0,这里为何还要加上这个值?这个值是eic_ivr到0地址的距离值,代码中说这个地方是为了LDR PC,[PC,#ofs]来完成跳转的,发生irq的时候,PC应该是首先跳转0x18这个地址的,然后再跳到eic_ivr取偏移地址,那现在如果加上了这个偏移地址怎么能够跳到正确的地址呢?难道是PC要跳到eic_ivr这个地址来取指令?

以上不甚其解,还望指点,谢谢!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

142

帖子

0

粉丝