最近在移植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的数据又有错误,等回学校时间又太长了,所以现在唯有请教一下高手们 |