打印

UCOS II任务调度

[复制链接]
1348|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

粉丝