关于嵌入式操作系统的任务优先级?

[复制链接]
1435|8
 楼主| gaobq 发表于 2020-9-8 12:22 | 显示全部楼层 |阅读模式
有一个疑问,正在学习使用freeRTOS,两个任务,TaskA优先级高,TaskB优先级低,比如TaskA目前没事可做,延时10ms,TaskB开始执行,执行过程中,TaskA的10ms延时到了,这时候会怎么样?是TaskA等待Task延时或等待,让出执行权,还是不管TaskB执行到什么地方,无条件的切换,开始执行TaskA?因为如果是后者的话,使用模拟总线通信会有问题,时序会被打乱。

评论

或是信号量  发表于 2020-9-8 16:04
对关键时序时,因使用临界保护区手段。  发表于 2020-9-8 15:54
按题意,延时完成,就切换到TASKA.  发表于 2020-9-8 15:52
有可能。  发表于 2020-9-8 15:52
节拍中断时发生一次线程切换,如果延时到了,比正在执行的线程优先级高的话。  发表于 2020-9-8 15:51
zyj9490 发表于 2020-9-8 16:03 | 显示全部楼层
发生线程切换无非是四个基本个时间点,硬件,软件ISR中断完成,节拍中断时,任务挂起时。或是人为线程切换时。
csdnpurple 发表于 2020-9-8 22:59 | 显示全部楼层
是会打乱,
 楼主| gaobq 发表于 2020-9-9 15:51 | 显示全部楼层
谢谢zyj9490,谢谢csdnpurple,看来使用模拟总线时,需要禁止掉任务切换,也要禁止中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

831

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部