前几天,FreeRTOS 从V10.3.1 升级到了 V10.4.0,其中更新并增强了不少内容。
FreeRTOS源码Github地址:
https://github.com/freertos/freertos
(公号不支持外链接,请复制链接到浏览器打开)
一、版本管理
到目前为止,FreeRTOS zip文件发行版都带有其所包含的内核发行版的版本号。例如,FreeRTOSv10.4.0.zip包含FreeRTOS内核的版本10.4.0。但是,内核不是zip文件中包含的唯一单独版本化的库,并且在将来的发行版中,zip文件中的库数将增加。因此,为了更好地反映zip文件实际上包含集成在一起的库的集合,将来的发行版将使用日期戳版本而不是内核版本。
二、向后兼容
FreeRTOS升级做了很多改变,但为了向后兼容,除了注释版本之外,在升级改版的代码中做了一定管理,比如:trcConfig.h文件中将TRC_CFG_FREERTOS_VERSION设置为TRC_FREERTOS_VERSION_10_4_0。
三、代码格式化
现在FreeRTOS代码格式化现已“自动化”,以促进 Git中的协作开发。自动格式化的代码不相同,保留原始格式约定。最明显的是现在使用空格代替TAB。
四、主要增强功能
这里有几点内容:
1.任务通知
在FreeRTOS V10.4.0之前版本,每个创建的任务都有一个单向任务通知。从FreeRTOS V10.4.0开始,每个任务都有一系列通知。直接到任务通知API已扩展了带有后缀为“ Indexed”的API函数,以使API能够在任何数组索引处对任务通知进行操作。
在FreeRTOS V10.4.0之前的版本中,任务只有一个通知值,而不是值数组,因此为了向后兼容,如果未定义configTASK_NOTIFICATION_ARRAY_ENTRIES,则默认为1。
可以参看下面链接了解更多详情:
https://www.freertos.org/RTOS-task-notifications.html
(公号不支持外链接,请复制链接到浏览器打开)
2.支持内存保护单元(MPU)的内核端口
ARMv7-M和ARMv8-M MPU端口现在支持仅特权访问堆。ARMv7-M MPU端口现在支持具有16个MPU区域的设备覆盖特权代码和数据的默认内存属性区域,并能够将FreeRTOS内核代码置于Flash。现在,ARMv8-M MPU端口支持无滴答空闲模式。
可以参看下面链接了解更多详情:
https://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
五、其他更新
1.回调函数的原型(以“ Application”开头的原型,如vApplicationStackOverflowHook())现在位于FreeRTOS头文件,从而无需应用程序编写者将原型添加到它们定义功能的C文件。
2.添加了新的POSIX端口层,允许FreeRTOS在Linux操作系统的主机上运行Windows端口层,使FreeRTOS在Windows上运行的方式相同主机。
3.新版本修复了长期存在的调度程序错误:在上下文切换期间可以同时执行两个任务。
更多内容,请参看:
https://www.freertos.org/FreeRTOS-V10.4.x.html
https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/master/History.txt
2.RT-Thread Smart开源混合微内核操作系统横空出世,替换智能设备中的Linux!
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。
来源:oschina
链接:https://my.oschina.net/u/4367114/blog/4609964