|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Dollche 于 2023-2-2 10:32 编辑 ) S# ^ t X5 [* z3 a
( {1 h6 @8 f" g1 e' }
在看 uc/os-II 的书时,关于 ucos-II 中任务切换的几种情况的问题.
0 C$ \' _; u& ~% [4 d% ^0 F1.在一个时钟周期内,至少所有的任务都要运行一遍,对吗
- q7 l. { d* w3 r2.任务切换发生的三种情况:
( e9 m" a ~5 ?' `3 H$ n8 a5 ma.任务 A 主动放弃 CPU 的主动权,利用 OSTimeDly() 延时,进行任务切换; 7 l/ V9 A7 q" Z
b.中断时钟周期发生时,在任务就绪表中寻找最高优先权的任务,如果当前任务不- F; a; r+ r5 G
是最高优先级,发生任务切换,否则仍执行原任务; 4 G9 s! Y7 N* c6 y2 W
c.发生 irq,fiq,软中断,取指错误和取数据错误五种异常模式时,直接发生任务
. a2 m: R9 n v1 t切换, 中断处理结束后,在任务就绪表中寻找最高优先权的任务,如果当前任
3 D3 A: B: Z/ D5 \# s. b% l# B务不是最高优先级,发生任务切换,否则仍执行原任务.
) Z/ X8 K5 p- i0 ^+ |' i |
|