1. 任务挂起与恢复:
a. 可挂起自身,也可挂起别的任务。OSTaskSuspend(INT8U prio) ,当prio为OS_PRIO_SELF时,挂起自身
b. 挂起和恢复将导致任务调度
c. 挂起为附加功能,即若任务同时处于挂起和延迟状态,则延迟时间过后,还需等到任务恢复之后才能就绪
2. 任务延迟与取消延迟
a. 调用延迟的任务将自己置于延迟态,不能延迟别的任务,任务延迟将导致任务调用
b. OSTimeDlyResume()的参数为优先级,即取消的不是本身任务的延迟(本身任务无法取消自己的延迟)
3. 信号量的使用
a. 首先要在主程序中创建信号量,OSSemCreate()参数为信号量的初始值
b. 应检查OSSemPend()的错误标志
c. OSSemPend()若能成功得到信号量,则当前任务继续运行,否则将发生任务切换
d. OSSemPost()将导致任务调度
4. 互斥信号量的使用
a. 信号量只能用于任务
b. MutexCreate将创建一个任务且将占用PIP级任务控制块
c. MutexPend会检查挂起请求的任务优先级是否比占据该互斥信号量的任务优先级高,若是,则占用优先级的任务将提升到PIP级。若当前
任务(即挂起请求的任务)不能的到该互斥信号量,则将发生任务调度
d. OSMutexPost将检查当前任务(也即调用OSMutexPost的任务)是否为PIP级,若是,则将当前任务还原成调用前的优先级;还将检查
是否还有任务在等待该互斥信号量,若有,则将等待任务中优先级最高的任务置于就绪态,且将进行任务调度(注意,是优先级最高的,而
不是先等待的)
3775

被折叠的 条评论
为什么被折叠?



