打印

如果在IRQ或FIQ中使用SWI指令会怎样。。。

[复制链接]
2566|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ayb_ice|  楼主 | 2007-6-8 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果在IRQ或FIQ中使用SWI指令会怎样。。。
好象没有书讲过类似的问题,望高手赐教。。。

相关帖子

沙发
dld2| | 2007-6-8 11:04 | 只看该作者

和在其他模式使用SWI没有区别吧

中断中也可以CALL操作系统服务的。

使用特权

评论回复
板凳
ayb_ice|  楼主 | 2007-6-8 16:46 | 只看该作者

随便说说

中断中使用的话,因为标准的写法不能嵌套,等待中断退出时PC已经不是指向SWI处了,这样不知会不会有问题。。。

使用特权

评论回复
地板
dld2| | 2007-6-9 09:30 | 只看该作者

不知道理解得对不对

进入IRQ:
    当前处理器模式是IRQ模式。
    R14_irq自动保存进入IRQ之前的PC(next+4)
    执行SWI指令进入Supervisor模式:
        R14_svc自动保存SWI指令的下一条指令的地址。
        。。。
        MOVS PC,R14    ;PC被装载的是R14_svc,处理器模式切换到IRQ模式。
    。。。
    SUBS PC,R14,#4        ;PC被转载的R14_irq的内容-4,处理器模式切换到进入IRQ之前的模式
关键问题是IRQ和SWI是不同的处理器模式,所以没有任何问题。

对于IRQ嵌套,没有搞懂。我的理解是只要先将R14入栈,再使能IRQ就可以了;没有必要那么麻烦。奇怪。

使用特权

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

本版积分规则

222

主题

15435

帖子

34

粉丝