|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑 + y6 k/ C5 T6 R5 m4 |- C3 ]
7 o0 g: ?0 z7 }. K在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题. 3 L, @' @; N: w# `0 ?
1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗
! z: I9 N/ D7 X9 S8 D" r: j, g2.任务切换发生的三种情况: 8 W# @6 {' q5 k- s0 O' j* V6 r
a.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换;
1 F, [ S5 a0 mb.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不
2 |% f- [% W. {0 p# a是最高优先级,发生任务切换,否则仍执行原任务;
% p7 C' c( n4 f+ x& z) K3 n3 P1 sc.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务' t& \3 y2 n: l
切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任
' i5 v/ t/ U/ T4 N/ O. D务不是最高优先级,发生任务切换,否则仍执行原任务. & `1 i, N# ]4 C: {) c
|
|