#1楼主:ucos运行模式
文章发表于:2008-07-24 05:06
UCOS是不是一定要在超级模式下面运行?
看到它的很多出栈的时候都是利用栈顶的元素(CPSR)copy到spsr中,如果需要在用户模式下切换的话就不能使用这个栈了?
不知道我的理解是否正确,请高人指点下。
#2
文章发表于:2008-07-26 12:35
问题是arm的操作模式svc可以使用arm的所有控制指令,如果在user模式cpsr和其他如干寄存器是不能够进行写操作的,这使得ucosii的关中断irq的原子操作不能完成,ucsoii也就不能正常运行,所以不能使用user模式。
#3
文章发表于:2008-07-26 12:45
如果你想正规点,硬要使用user模式,这样使得task不能进行肆意的操作,就像linux内核那样,区分出,用户态和内核态,那么需要使用swi软中断来完成task调度切换,同样另外一个RTOS开源项目也使用了swi完成了task任务调度,你可以参考一下:FreeRTOS