|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑
% r9 z0 X6 m" j5 n6 t
8 M+ N% M# s" M: F c在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题.
2 Z: I8 k) y) ], q1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗 - L) P2 _2 j0 E
2.任务切换发生的三种情况: ' |! t+ a' _# g1 B6 @5 C
a.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换;
& ^0 m: \$ I5 x% s H O1 p/ [b.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不$ H& [" _- i' Q! j2 }( H% `
是最高优先级,发生任务切换,否则仍执行原任务; . t# j* P! O* |! S) B3 D
c.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务
' S! f$ f3 D3 b4 T) V0 T; h4 B切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任6 n1 w3 z: N( L
务不是最高优先级,发生任务切换,否则仍执行原任务. 6 J( i1 h0 q; }5 y
|
|