uC/OS_Ⅱ笔记

任务调度 P59

在多任务系统中,令CPU中止当前正在运行的任务转而去运行另一个任务的工作叫做任务切换,而按某种规则进行任务切换的工作叫做任务调度

uC/OS_Ⅱ中,任务调度器的主要工作有1在任务就绪表中查找具有最高优先级的就绪任务2实现任务切换。

uC/OS_Ⅱ中,两种调度器一种任务级的调度器(OSSched()),另一种是中断级的调度器(OSIntExt()

调度器主要工作:获得待运行任务的任务模块指针和当前任务的任务模块指针

任务切换OSCtxSw()工作:

1 把被中止任务的断点指针保存到任务堆栈中

2 CPU通用寄存器的内容保存到任务堆栈中

3 把被中止任务的任务堆栈指针当前值保存到该任务的任务控制模块的OSTCBStkPtr

4获得待运行任务的任务控制块

5 使CPU通过任务控制块获得待运行任务的任务堆栈指针

6 把待运行任务堆栈中通用寄存器的内容恢复到CUP的通用寄存器中

7 使CPU获得待运行任务的断点指针

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值