FreeRTOS V10.4.0更新了哪些功能?
素材來源:FreeRTOS 編輯整理:strongerHuang
前幾天,F(xiàn)reeRTOS 從V10.3.1 升級到了 V10.4.0,其中更新并增強(qiáng)了不少內(nèi)容。
FreeRTOS源碼Github地址:
https://github.com/freertos/freertos (公號(hào)不支持外鏈接,請復(fù)制鏈接到瀏覽器打開)
一、版本管理
到目前為止,F(xiàn)reeRTOS zip文件發(fā)行版都帶有其所包含的內(nèi)核發(fā)行版的版本號(hào)。例如,F(xiàn)reeRTOSv10.4.0.zip包含F(xiàn)reeRTOS內(nèi)核的版本10.4.0。但是,內(nèi)核不是zip文件中包含的唯一單獨(dú)版本化的庫,并且在將來的發(fā)行版中,zip文件中的庫數(shù)將增加。因此,為了更好地反映zip文件實(shí)際上包含集成在一起的庫的集合,將來的發(fā)行版將使用日期戳版本而不是內(nèi)核版本。
二、向后兼容
FreeRTOS升級做了很多改變,但為了向后兼容,除了注釋版本之外,在升級改版的代碼中做了一定管理,比如:trcConfig.h文件中將TRC_CFG_FREERTOS_VERSION設(shè)置為TRC_FREERTOS_VERSION_10_4_0。
三、代碼格式化
現(xiàn)在FreeRTOS代碼格式化現(xiàn)已“自動(dòng)化”,以促進(jìn) Git中的協(xié)作開發(fā)。自動(dòng)格式化的代碼不相同,保留原始格式約定。最明顯的是現(xiàn)在使用空格代替TAB。
四、主要增強(qiáng)功能
這里有幾點(diǎn)內(nèi)容:
1.任務(wù)通知
在FreeRTOS V10.4.0之前版本,每個(gè)創(chuàng)建的任務(wù)都有一個(gè)單向任務(wù)通知。從FreeRTOS V10.4.0開始,每個(gè)任務(wù)都有一系列通知。直接到任務(wù)通知API已擴(kuò)展了帶有后綴為“ Indexed”的API函數(shù),以使API能夠在任何數(shù)組索引處對任務(wù)通知進(jìn)行操作。
在FreeRTOS V10.4.0之前的版本中,任務(wù)只有一個(gè)通知值,而不是值數(shù)組,因此為了向后兼容,如果未定義configTASK_NOTIFICATION_ARRAY_ENTRIES,則默認(rèn)為1。
可以參看下面鏈接了解更多詳情:
https://www.freertos.org/RTOS-task-notifications.html (公號(hào)不支持外鏈接,請復(fù)制鏈接到瀏覽器打開)
2.支持內(nèi)存保護(hù)單元(MPU)的內(nèi)核端口
ARMv7-M和ARMv8-M MPU端口現(xiàn)在支持僅特權(quán)訪問堆。ARMv7-M MPU端口現(xiàn)在支持具有16個(gè)MPU區(qū)域的設(shè)備覆蓋特權(quán)代碼和數(shù)據(jù)的默認(rèn)內(nèi)存屬性區(qū)域,并能夠?qū)reeRTOS內(nèi)核代碼置于Flash?,F(xiàn)在,ARMv8-M MPU端口支持無滴答空閑模式。
可以參看下面鏈接了解更多詳情:
https://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
五、其他更新
1.回調(diào)函數(shù)的原型(以“ Application”開頭的原型,如vApplicationStackOverflowHook())現(xiàn)在位于FreeRTOS頭文件,從而無需應(yīng)用程序編寫者將原型添加到它們定義功能的C文件。
2.添加了新的POSIX端口層,允許FreeRTOS在Linux操作系統(tǒng)的主機(jī)上運(yùn)行Windows端口層,使FreeRTOS在Windows上運(yùn)行的方式相同主機(jī)。
3.新版本修復(fù)了長期存在的調(diào)度程序錯(cuò)誤:在上下文切換期間可以同時(shí)執(zhí)行兩個(gè)任務(wù)。
更多內(nèi)容,請參看:
https://www.freertos.org/FreeRTOS-V10.4.x.html https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/master/History.txt(公號(hào)不支持外鏈接,請復(fù)制鏈接到瀏覽器打開)
國產(chǎn)物聯(lián)網(wǎng)操作系統(tǒng)有哪些,誰主沉???
標(biāo)準(zhǔn)C庫導(dǎo)致緩沖區(qū)溢出,如何避免?
ARM 編譯工具keil 和 IAR 命令行編譯和下載
長按前往圖中包含的公眾號(hào)關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!