FreeRTOS实用教程,来源:https://www.cnblogs.com/smartjourneys/p/7073450.html
本讲主要讲述任务相关特性及调度相关的知识。
freeRTOS中所有任务的通信和同步机制都是基于队列来实现。
嵌入式实时操作系统需要对整个系统环境产生的事件作出响应。可以采用中断方式也可以采用轮询方式来进行处理。
在中断不频繁的系统中,使用二值信号量没有问题,但是中断频繁发生时,则会有中断丢失的问题。
消息队列不仅可以用于事件通信,还可以用来传递数据。
最新的 FreeRTOS 移植中允许中断嵌套。
多任务系统中存在一种潜在的风险。当一个任务在使用某个资源的过程中,即还没有完全结束对资源的访问时,便被切出运行态,使得资源处于非一致,不完整的状态。
访问一个被多任务共享,或是被任务与中断共享的资源时,需要采用”互斥”技术以保证数据在任何时候都保持一致性。这样做的目的是要确保任务从开始访问资源就具有排它性,直至这个资源又恢复到完整状态。
FreeRTOS 将内存分配作为可移植层面(相对于基本的内核代码部分而言)。这使得不同的应用程序可以提供适合自身的具体实现。
本章主要是为刚接触FreeRTOS 的用户指出那些新手通常容易遇到的问题。