加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

FreeRTOS V11.0升級(jí)了多項(xiàng)重要功能,兼容V10版本

02/04 10:20
4040
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

微信公眾號(hào)?| strongerHuang

年前12月份的時(shí)候,F(xiàn)reeRTOS 升級(jí)到V11.0版本,你們項(xiàng)目用上了這個(gè)最新版本嗎?

我最近抽時(shí)間,把老項(xiàng)目中V10版本的FreeRTOS,升級(jí)(替換)為最新V11.0.1版本,發(fā)現(xiàn)編譯沒(méi)有錯(cuò)誤,然后也實(shí)際在產(chǎn)品上跑了一下,沒(méi)發(fā)現(xiàn)什么問(wèn)題。

這說(shuō)明,V10和V11版本還是兼容,至少用到的這些API接口上沒(méi)問(wèn)題。

當(dāng)然,我只是簡(jiǎn)單跑了一下,沒(méi)有經(jīng)過(guò)嚴(yán)格測(cè)試。還有,項(xiàng)目中用到的接口都是一些常規(guī)的,而且只是占據(jù)少部分。

V11和V10的接口是否全面兼容,還有有待驗(yàn)證,只能說(shuō)常規(guī)的接口是向下兼容,且增加了一些更現(xiàn)代、更先進(jìn)的API接口。

重要的更新內(nèi)容

FreeRTOS從V10升級(jí)到V11,從官網(wǎng)給出的信息,升級(jí)的內(nèi)容非常多,有30條左右,下面給大家列舉一些重要的更新內(nèi)容:

1、支持對(duì)稱多處理 (SMP)?

FreeRTOS 在 2017 年推出了對(duì)非對(duì)稱多處理 (AMP) 的支持,而V11版本的 FreeRTOS 首次將對(duì)稱多處理 (SMP) 支持納入主線版本。借助 SMP, FreeRTOS 內(nèi)核的實(shí)例可以在多個(gè)相同的處理器核心中調(diào)度任務(wù)。

2、合規(guī)性檢查從 PC Lint 切換到 Coverity?

FreeRTOS源代碼遵循?MISRA 行業(yè)規(guī)范,此次升級(jí),將規(guī)范從 MISRA C:2004 更新了 MISRA C:2012,代碼靜態(tài)分析工具也切換到了Coverity.

這里簡(jiǎn)單可以一下什么是?MISRA 行業(yè)規(guī)范:MISRA C是由汽車產(chǎn)業(yè)軟件可靠性協(xié)會(huì)(MISRA)提出的C語(yǔ)言開(kāi)發(fā)標(biāo)準(zhǔn)。

其目的是在增進(jìn)嵌入式系統(tǒng)的安全性及可移植性,針對(duì)C++語(yǔ)言也有對(duì)應(yīng)的標(biāo)準(zhǔn)MISRA C++。

這里可以參看我分享的文章:汽車行業(yè) C 語(yǔ)言標(biāo)準(zhǔn):MISRA C

3、增加FreeRTOSConfig.h說(shuō)明(注釋)?

就是增加了FreeRTOSConfig.h配置文件的注釋,比以前更加詳細(xì)了。

4、增加內(nèi)存安全檢查?

在heap_4.c和heap5 .c中增加了對(duì)內(nèi)部堆塊指針的邊界檢查和混淆,以幫助捕獲指針異常。

比如 pvPortMalloc :

5、增加一些API接口?

拋開(kāi)新支持的一些功能之外,也增加了一些實(shí)用的API接口,比如:uxTaskBasePriorityGet 和 uxTaskBasePriorityGetFromISR 來(lái)獲取任務(wù)最后分配的基本優(yōu)先級(jí)。

還添加了“跟蹤宏”,支持跟蹤所有api的輸入和退出。

6、更新/修復(fù)一些功能?

更新并修改一些功能和潛在的bug,比如:更新Cortex-M端口的中斷優(yōu)先級(jí)斷言,使它們不會(huì)在沒(méi)有實(shí)現(xiàn)PRIO位的QEMU上觸發(fā)。

再比如:更新eTaskGetState和uxTaskGetSystemState,對(duì)于等待就緒的任務(wù)返回eReady.

還有:更新ARMv7-M端口以確保內(nèi)核中斷以最低優(yōu)先級(jí)運(yùn)行。

時(shí)間有限,就整理這么多,詳細(xì)更新說(shuō)明,大家可以參看:https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/History.txt

最后,如果大家升級(jí)到V11有遇到各種問(wèn)題,歡迎留言交流和討論。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
STM32F103RBT6 1 STMicroelectronics Mainstream Performance line, Arm Cortex-M3 MCU with 128 Kbytes of Flash memory, 72 MHz CPU, motor control, USB and CAN

ECAD模型

下載ECAD模型
$10.15 查看
CP2102N-A02-GQFN28R 1 Silicon Laboratories Inc USB Bus Controller, CMOS, QFN-28

ECAD模型

下載ECAD模型
$2.5 查看
PIC32MX575F512L-80I/PT 1 Microchip Technology Inc 32-BIT, FLASH, 80 MHz, RISC MICROCONTROLLER, PQFP100, 12 X 12 MM, 1 MM HEIGHT, LEAD FREE, PLASTIC, TQFP-100

ECAD模型

下載ECAD模型
$8.67 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開(kāi)發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。