|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑 6 `: _5 k8 ]$ V: O6 z2 j& p, R
0 V9 ~9 _* I1 ^/ O4 U. B/ }在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题.
* b! E9 ~/ a7 u; G1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗
% Z) z$ y! B- N3 o* t, H0 q* Y' v2.任务切换发生的三种情况:
+ }' T }! ?* l+ ]% ~" la.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换;
% ]5 U/ P" ^$ w& ib.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不
/ ^- q* B# r4 n* ]& V! c* k# V是最高优先级,发生任务切换,否则仍执行原任务; ) ^" w$ T# j, ]8 B! n0 n/ k% s
c.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务
: l, ]. [/ l1 V9 Q o切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任. T9 j* t) |0 }/ t
务不是最高优先级,发生任务切换,否则仍执行原任务.
0 m: K- U. ?; `; G% E( o" }4 \) t$ U1 f |
|