请教几个关于硬中断与软中断的!重入!问题

kkjiongquan 2010-02-06 09:45:43
最近在移植uCOS-II,发现了几个问题,想请教各位高手
1)对于裸机:为什么网上与书籍再处理SWI ,IRQ中断重入的时候都只是把R0-R3,R12,LR入栈,那其他的R4-R11为什么不需要入栈呢?
2)对于uCOS-II:由于需要任务调度,换任务前会把R0-R12,LR,PC,CPSR,都入栈,那为什么现在又要保存所有的寄存器呢?
3) 根据以上两个问题我有一点点想法:会不会中断发生时CPU所使用的寄存器会有限制呢?据我了解,SWI中断处理程序可以通过R0-R3传递4个参数,而IRQ中断处理程序也是首先用R0传递参数,但是不知道参数多了是不是就想SWI一样用R0-R3传递。但是其他寄存器没可能不给用啊。。。。


其实以上的问题有一部分是可以直接用AXD调试看结果的,但是本人的笔记本没有并口,用转USB的数据又有错误,等回学校时间又太长了,所以现在唯有请教一下高手们
...全文
174 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfmvp 2010-02-07
  • 打赏
  • 举报
回复
学习,学习,呵呵。
tcdzyq 2010-02-06
  • 打赏
  • 举报
回复
用到哪个入哪个,没有用到的就不需要了.
kkjiongquan 2010-02-06
  • 打赏
  • 举报
回复
补充一下,本人用的是2440
kkjiongquan 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tcdzyq 的回复:]
用到哪个入哪个,没有用到的就不需要了.
[/Quote]

我的问题就是怎么知道哪些有用到,需要入栈

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧