FreeRTOS V10.4.0更新了哪些功能?


关注、星标公众,不错过精彩内容

素材来源:FreeRTOS
编辑整理:strongerHuang

前几天,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

(公号不支持外链接,请复制链接到浏览器打开)


推荐阅读:

国产物联网操作系统有哪些,谁主沉浮?

标准C库导致缓冲区溢出,如何避免?

ARM 编译工具keil 和 IAR 命令行编译和下载


关注微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注