|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑 - e3 v* _0 g3 |, u0 N( ^0 d
% l; {- `1 X3 i
在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题. # Q9 ?9 q+ P4 x% g! c# ?( t: V1 I
1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗 ( d' H- l7 @% L# m# |6 D
2.任务切换发生的三种情况:
8 c9 @. F8 d% @$ t9 P* Za.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换; $ q. j, j6 _" | A- G
b.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不
1 p1 }/ {4 Y+ e% A# F5 u6 y是最高优先级,发生任务切换,否则仍执行原任务;
( }# O: p& {! V+ mc.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务
) E; Y p9 q* P7 x切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任7 I b' J9 `; _6 b- u4 h
务不是最高优先级,发生任务切换,否则仍执行原任务.
* J# {( o/ I4 V' w0 z$ ` |
|