UCOS II任务调度

[复制链接]
2172|2
 楼主| id001 发表于 2008-3-2 17:31 | 显示全部楼层 |阅读模式
任务级的任务切换,函数的结构如下:
void OSSched(void){

关中断                  //!!!!!!!!!!!!!

如果(不是中断嵌套并且系统可以被调度){

   确定优先级最高的任务

   如果(最高级的任务不是当前的任务){

          调用OSCtxSw(); //如在这里切换到一个高优先级的任务,系统的中断不是被关闭了吗?

   }

 }

开中断

}
 楼主| id001 发表于 2008-3-2 17:38 | 显示全部楼层

中断级的任务切换

中断级的任务切换,函数的结构如下 :

保存全部CPU寄存器

调用OSIntEnter()或OSIntNesting++

调用OSIntExit();      //如果每次都在这里发生任务切换,那么下面“恢复所有CPU寄存器”及“RETI”将永远不能被执行???

恢复所有CPU寄存器

RETI

================================
各位朋友请多指教.
 楼主| id001 发表于 2008-3-2 23:43 | 显示全部楼层

懂的朋友们讲解下啊

Thanks!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

107

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部