返回该小组首页 回复主题
darkrainbow

darkrainbow

小组等级:     E币:304  (E币换礼)

#1楼主:ucos运行模式

文章发表于:2008-07-24 05:06

UCOS是不是一定要在超级模式下面运行?

看到它的很多出栈的时候都是利用栈顶的元素(CPSR)copy到spsr中,如果需要在用户模式下切换的话就不能使用这个栈了?

不知道我的理解是否正确,请高人指点下。

gliethttp

   小组等级:    E币:233  (E币换礼)

#2

文章发表于:2008-07-26 12:35

问题是arm的操作模式svc可以使用arm的所有控制指令,如果在user模式cpsr和其他如干寄存器是不能够进行写操作的,这使得ucosii的关中断irq的原子操作不能完成,ucsoii也就不能正常运行,所以不能使用user模式。

gliethttp

   小组等级:    E币:233  (E币换礼)

#3

文章发表于:2008-07-26 12:45

如果你想正规点,硬要使用user模式,这样使得task不能进行肆意的操作,就像linux内核那样,区分出,用户态和内核态,那么需要使用swi软中断来完成task调度切换,同样另外一个RTOS开源项目也使用了swi完成了task任务调度,你可以参考一下:FreeRTOS

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

所有小组精华文章