打印

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

[复制链接]
852|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaobq|  楼主 | 2020-9-8 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个疑问,正在学习使用freeRTOS,两个任务,TaskA优先级高,TaskB优先级低,比如TaskA目前没事可做,延时10ms,TaskB开始执行,执行过程中,TaskA的10ms延时到了,这时候会怎么样?是TaskA等待Task延时或等待,让出执行权,还是不管TaskB执行到什么地方,无条件的切换,开始执行TaskA?因为如果是后者的话,使用模拟总线通信会有问题,时序会被打乱。

使用特权

评论回复
评论
zyj9490 2020-9-8 16:04 回复TA
或是信号量 
zyj9490 2020-9-8 15:54 回复TA
对关键时序时,因使用临界保护区手段。 
zyj9490 2020-9-8 15:52 回复TA
按题意,延时完成,就切换到TASKA. 
zyj9490 2020-9-8 15:52 回复TA
有可能。 
zyj9490 2020-9-8 15:51 回复TA
节拍中断时发生一次线程切换,如果延时到了,比正在执行的线程优先级高的话。 

相关帖子

沙发
zyj9490| | 2020-9-8 16:03 | 只看该作者
发生线程切换无非是四个基本个时间点,硬件,软件ISR中断完成,节拍中断时,任务挂起时。或是人为线程切换时。

使用特权

评论回复
板凳
csdnpurple| | 2020-9-8 22:59 | 只看该作者
是会打乱,

使用特权

评论回复
地板
gaobq|  楼主 | 2020-9-9 15:51 | 只看该作者
谢谢zyj9490,谢谢csdnpurple,看来使用模拟总线时,需要禁止掉任务切换,也要禁止中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

804

帖子

5

粉丝