|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑
; X8 T) i% R+ |$ E1 N7 J
6 N1 m* P1 k$ k在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题. 1 `; H7 }; I" c8 V; V: Y/ h& }
1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗 ; e9 |7 a7 p9 o0 k; n
2.任务切换发生的三种情况:
9 l& J( w6 }4 Y$ Fa.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换; 9 i: b6 y% X7 D2 S. S7 {/ w& G
b.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不
3 ~. Q9 _ ^8 ~% U是最高优先级,发生任务切换,否则仍执行原任务; 6 @! ], X o ~4 _! x
c.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务: y4 B" o y/ o$ z* U' i
切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任+ P* r7 c4 f O, r+ o4 |' g, E
务不是最高优先级,发生任务切换,否则仍执行原任务.
0 L% ]6 ?3 }6 d. e' T; b% I5 D |
|