硬汉嵌入式论坛

 找回密码
 立即注册
查看: 313|回复: 2
收起左侧

[RTOS] RTX5任务优先级、抢占的问题

[复制链接]

20

主题

94

回帖

154

积分

初级会员

积分
154
发表于 2023-11-19 22:48:27 | 显示全部楼层 |阅读模式
在RTX5的任务当中,如果两个任务采用相同的优先级。


[C] 纯文本查看 复制代码
void task1(void *argument)
{
while(1)
{

}
}


[C] 纯文本查看 复制代码
void task2_led(void *argument)
{
while(1)
{
bsp_LedToggle(0);
osDelay(100);
}
}


在这里因为task1没有执行osDelay这样的调用,task2_led因为和task1是相同的优先级,task1将CPU就完全占用了,是不是task2_led就几乎永远得不到执行的机会呢?
如果想让task2_led也得到执行机会,task1应该怎么修改呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-11-20 00:11:47 | 显示全部楼层
RTX5同优先级任务之间调度切换,如果没有调用osDelay之类的切换,函数osThreadYield()要加上
https://www.armbbs.cn/forum.php? ... 1917&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

26

回帖

26

积分

新手上路

积分
26
发表于 2023-11-22 15:09:08 来自手机 | 显示全部楼层
如果开了round robin,也是可以的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 14:28 , Processed in 0.278265 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表