阅读完FreeRTOS内核实现与应用开发实战指南,知道FreeRTOS是不涉及文件系统,
只是涉及到,内核的任务调用。通篇阅读,我的理解是任务调用是任务的列表项在不同的链表之间插入和删除。
如一个任务需要一个信号量才能执行任务,目前它被阻塞,那它就被挂在这个信号量等我阻塞链表上。当它获得这个信号量时,那么它就可能被挂载到其他链表上,如就绪链表和阻塞链表,或者直接执行。相同的对其他任务而言,也是如此。如消息队列已满,需要发送消息的任务就会被挂上在消息队列的阻塞链表,一旦发送消息成功,那么就会从消息队列的阻塞链表上删除,挂在其他的链表上。
通常任何对应哪个状态,就会被挂在哪个状态的链表。任务状态的切换是通过任务控制块的列表项在不同的链表的切换。当current指针指向哪个列表项的时候就运行哪个任务。
FreeRTOS任务调用的大概
最新推荐文章于 2023-02-04 16:46:02 发布