FreeRTOS
FreeRTOS简介
FreeRTOS是一个迷你的实时操作系统内核。
作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要
FreeRTOS能在小RAM单片机上运行。FreeRTOS操作系统是完全免费的开源操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行
目前github上最新FreeRTOS的版本是2021年12月发布的Release版本(FreeRTOSv202112.00),版本号:FreeRTOS Kernel V10.4.6
github上最新的10.4 LTS版本是2020年12月发布的版本(FreeRTOSv202012.04-LTS),版本号:FreeRTOS Kernel V10.4.3 LTS Patch 2
目前Armino平台使用的是2021年7月发布的版本,比10.4 LTS版本稍新的Release版本(FreeRTOSv202107.00),版本号:FreeRTOS Kernel V10.4.4
FreeRTOS通用架构
一个FreeRTOS 系统主要由BSP驱动+内核+组件组成(如上图)。内核包含多任务调度、内存管理、任务间通信的功能,组件包含网络协议、外设支持等。
FreeRTOS内核是可剪裁的,组件也是可选的。由于嵌入式应用往往对内存空间的要求十分苛刻,所以一个可剪裁的RTOS对于嵌入式应用非常重要。这使得FreeRTOS的核心代码只有9000行左右。
功能和特点
用户可配置内核功能
多平台的支持
提供一个高层次的信任代码的完整性
目标代码小,简单易用
遵循MISRA-C标准的编程规范
强大的执行跟踪功能
堆栈溢出检测
没有限制的任务数量
没有限制的任务优先级
多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
优先级继承
免费开源的源代码
FreeRTOS 小结
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRTOS内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。
在嵌入式领域,FreeRTOS是不多的同时具有实时性,开源性,可靠性,易用性,多平台支持等特点的嵌入式操作系统。目前,FreeRTOS已经发展到支持包含X86,Xilinx,Altera等多达30种的硬件平台,其广阔的应用前景已经越来越受到业内人士的瞩目。