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 命令行编译和下载
长按前往图中包含的公众号关注
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!