打印
[STM32F1]

任务优先级和调度问题

[复制链接]
250|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
突然下起雨|  楼主 | 2024-7-30 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LCD, LC, CD, sd, IO, rio
任务优先级设置不当或者任务间的资源竞争可能会导致系统不稳定。

3.1 适当调整任务优先级
确保SD卡写入任务和屏幕显示任务的优先级设置合理,不会导致任务饥饿或优先级反转。

c

#define SD_TASK_PRIORITY      (tskIDLE_PRIORITY + 2)
#define LCD_TASK_PRIORITY     (tskIDLE_PRIORITY + 1)

xTaskCreate(sdTask, "SD Task", SD_TASK_STACK_SIZE, NULL, SD_TASK_PRIORITY, NULL);
xTaskCreate(lcdTask, "LCD Task", LCD_TASK_STACK_SIZE, NULL, LCD_TASK_PRIORITY, NULL);


使用特权

评论回复
沙发
我爱台妹mmd| | 2024-7-31 23:17 | 只看该作者
在 FreeRTOS 中,适当设置任务优先级是确保系统稳定和高效的关键。你的代码示例显示了如何为 SD 卡写入任务 (sdTask) 和屏幕显示任务 (lcdTask) 设置优先级。

使用特权

评论回复
板凳
范德萨发额| | 2024-8-16 14:46 | 只看该作者
如果SD卡写入任务占用了大量CPU时间,可能会导致LCD显示任务饥饿(即LCD任务很少有机会运行)

使用特权

评论回复
地板
范德萨发额| | 2024-8-16 14:52 | 只看该作者
可以使用FreeRTOS的优先级继承机制。

使用特权

评论回复
5
范德萨发额| | 2024-8-16 14:52 | 只看该作者
显示任务可能相对较少依赖实时性,因此可以设置一个较低的优先级。这样可以确保SD卡写入任务得到优先处理。

使用特权

评论回复
6
狄克爱老虎油| | 2024-8-17 22:59 | 只看该作者
优先级继承是什么啊

使用特权

评论回复
7
grfqq325| | 2024-8-28 12:07 | 只看该作者
通常,重要且需要实时处理的任务应当分配较高的优先级。

使用特权

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

本版积分规则

30

主题

276

帖子

1

粉丝