

任务
意义:竞争系统资源的最小单元,任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其他任务运行。只有单核的时候,意味着任何时刻只有一个任务在执行,任务之间的交替工作需要调度器的切换功能;
原型;void ATaskFunction(void *pvParameters)
特点:死循环,无返回值,一般情况下不会执行到函数末尾,只能被删除或一直运行;
状态
就绪态:任务在就绪列表中,就绪的任务已经具备执行能力,只等待调度器的调度,新建的任务会初始化为就绪态;
运行态:任务正在执行,此时它占用处理器;
阻塞态:任务正在等待事件的发生,事件到达后进入就绪态;
挂起态:处于挂起态的任务对调度器而言是不可见的,只能使用vTaskSuspend()挂起和vTaskResume()唤醒;
任务间通信
实现任务间同步和通信、任务与事件的同步;
IPC通信机制
信号量
二值信号量:可以用于同步功能(任务与任务间的同步或任务和中断间的同步)和临界资源的访问;
互斥量:(优先级继承机制)主要用于临界资源的访问;
计数信号量:用于事件计数与资源管理;
递归信号量:可以重复获取调用的信号量;
本文深入探讨FreeRTOS的任务管理,包括任务状态、任务间通信、中断处理和资源管理。介绍了信号量、互斥量、事件、消息队列等IPC通信机制。此外,还讨论了中断延迟、中断嵌套和基于中断的任务切换。内存管理和软件定时器的实现也进行了详细阐述。
最低0.47元/天 解锁文章

2607

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



