刚开始学习FREERTOS,将一些之前不了解的点记录下来。
1、创建任务时,可以由相同的任务代码创建多个任务,仅仅是传入的参数不同。

2、调度器总是选择具有最高优先级的可运行任务来执行,如下图高优先级任务之所以总是运行,是因为其不会等待任何事情,要么在死循环里打转,要么往终端打印字符串。这种情况称为任务1的执行时间被任务2“饿死(starved)”了。

3、由于上例中任务的内容就是打印输出,和计数死循环,导致低优先级任务被饿死,为解决这种问题,可以调用vTaskDelay()以让任务在延迟期间保持阻塞态,低优先级任务也可以很好的执行。

本文探讨了FreeRTOS中任务的创建与调度机制,重点分析了任务优先级对执行时间的影响,以及如何通过vTaskDelay()函数避免低优先级任务被饿死的现象,确保系统稳定运行。
1131

被折叠的 条评论
为什么被折叠?



