FreeRTOS快速入门-初探FreeRTOS
首發(fā),公眾號(hào)【一起學(xué)嵌入式】
對于 RTOS 入門系列文章,已經(jīng)更新完一款(RT-Thread):
助你快速入門 RT-Thread
這個(gè)系列的文章結(jié)合 RT-Thread,介紹過 RTOS 相關(guān)的核心知識(shí)。
接下來,開始另外一款 RTOS – FreeRTOS 入門系列,希望能夠幫助初學(xué)者快速掌握 FreeRTOS,幫助老手回顧基礎(chǔ)內(nèi)容。
一起學(xué)習(xí)、一起進(jìn)步。加油~
FreeRTOS簡介
先來看看官網(wǎng)介紹,官方網(wǎng)址
https://freertos.org/FreeRTOS 是一種面向微控制器和小型微處理器的市場領(lǐng)先實(shí)時(shí)操作系統(tǒng)(RTOS),與世界領(lǐng)先的芯片公司合作開發(fā)了18年,現(xiàn)在每 170 秒下載一次。
FreeRTOS根據(jù)麻省理工學(xué)院開放源碼許可證免費(fèi)發(fā)布,包括一個(gè)內(nèi)核和一組越來越多的物聯(lián)網(wǎng)庫,適用于所有行業(yè)。FreeRTOS強(qiáng)調(diào)可靠性和易用性。
FreeRTOS 合作過的部分 IC 廠商:
特點(diǎn)
FreeRTOS 的主要特點(diǎn)如下:
- 支持搶占式調(diào)度、協(xié)作式調(diào)度、時(shí)間片調(diào)度
- 靈活、快速、輕量級(jí)的任務(wù)通知機(jī)制。
- 支持消息隊(duì)列、二值信號(hào)量、計(jì)數(shù)信號(hào)量、互斥量、遞歸互斥、軟件定時(shí)器、事件標(biāo)志組等功能
- 時(shí)鐘節(jié)拍鉤子函數(shù)
- 空閑鉤子函數(shù)
- 棧溢出檢測
- 任務(wù)運(yùn)行時(shí)統(tǒng)計(jì)信息收集
- 可選的商業(yè)許可和支持
- 全中斷嵌套模型(對于某些體系結(jié)構(gòu))
- 極低功耗應(yīng)用的無滴答功能
- 軟件管理的中斷堆棧(這有助于節(jié)省RAM)
- 支持 40 多個(gè)體系結(jié)構(gòu)。
- 模塊化庫。
- …
為什么選擇 FreeRTOS
列舉幾個(gè)選擇 FreeRTOS 用于項(xiàng)目開發(fā)的幾點(diǎn)原因:
- 為許多不同的體系結(jié)構(gòu)和開發(fā)工具提供單一且獨(dú)立的解決方案。
- 眾所周知,它是可靠的。
- 功能豐富,仍在持續(xù)積極發(fā)展。
- 具有最小的 ROM、RAM 和 處理器開銷。RTOS 內(nèi)核二進(jìn)制映像通常在 6K 到 12K 字節(jié)的范圍內(nèi)。
- 非常簡單——RTOS內(nèi)核的核心只包含在 3 個(gè) C 文件中。
- 在商業(yè)應(yīng)用中真正免費(fèi)使用(詳見許可證條件)。
- 我們的合作伙伴WITTENSTEIN high integrity systems以O(shè)PENRTOS的形式提供商業(yè)許可、專業(yè)支持和移植服務(wù)。
- 擁有通往 SafeRTOS 的遷移路徑,其中包括醫(yī)療、汽車和工業(yè)部門的認(rèn)證。
- 擁有龐大且不斷增長的用戶群。
- 包含每個(gè)端口的預(yù)配置示例。
- 擁有一個(gè)優(yōu)秀的、活躍的免費(fèi)支持論壇。
- 保證在需要時(shí)提供商業(yè)支持。
- 提供了大量的文檔。
- 非常可擴(kuò)展,簡單易用。
- …
源碼文件結(jié)構(gòu)
官方源碼的下載地址為:
https://www.freertos.org/a00104.html源碼下載后,是一個(gè)壓縮包 FreeRTOSv202112.00.zip,解壓后如下圖所示
FreeRTOS 的源碼在 FreeRTOS 和 FreeRTOS-Plus 這兩個(gè)文件夾中。tools 文件夾存放的是一些腳本工具。剩下的文件,看名字就知道是干什么用的了。
FreeRTOS文件夾
這個(gè)文件夾里放的是 FreeRTOS 內(nèi)核相關(guān)的文件,打開 FreeRTOS 文件,來看看里面的內(nèi)容
Demo 文件夾里包含 FreeRTOS 官方為各種單片機(jī)移植好的示例工程代碼。
Source 文件夾里存放的是 FreeRTOS 的內(nèi)核源碼文件。
Demo文件夾
這個(gè)文件夾里面存放的是 FreeRTOS 針對不同的 MCU 平臺(tái)提供的例程 Demo。開發(fā)者可以參考這些 Demo 搭建自己的工程項(xiàng)目。如下圖所示,官方提供的示例工程是非常全面的,幾乎覆蓋了常見的 MCU 平臺(tái)。
Source 文件夾
這個(gè)文件夾里存放的是 FreeRTOS 的內(nèi)核源碼文件。也就是我們使用 FreeRTOS 必須用到的文件。下圖中標(biāo)示出各個(gè)部分的用途
include 文件夾是一些頭文件,下面的這些 .c 文件就是 FreeRTOS 的源碼文件。這兩部分是不可或缺的,不必多說。
接下來看看 portable 文件夾,里面包含的是跟編譯器相關(guān)的文件夾,使用不同的編譯平臺(tái),選擇對應(yīng)的支持文件。
我們比較常用的是 keil,這個(gè)目錄下只有一個(gè)文件,文件名字為 See-also-the-RVDS-directory.txt。即這個(gè)目錄下的內(nèi)容和 RVDS 目錄相同。使用 RVDS 文件夾內(nèi)的文件即可,具體如下所示
這里邊的關(guān)聯(lián)文件是連接 FreeRTOS 和具體硬件平臺(tái)的橋梁。編寫這些接口文件就是真正的移植過程,這部分工作已經(jīng)由 FreeRTOS 官方完成了,我們直接拿來用就可以了。
MemMang 文件夾下存放的是跟內(nèi)存管理相關(guān)的文件,共有 5 個(gè) heap_x.c 文件和 1 個(gè) ReadMe 文件。在移植時(shí),根據(jù)選用的內(nèi)存堆分配算法,選用其中一個(gè)即可。
License 文件夾
該文件夾下只有一個(gè)文件 license.txt,該文件描述的是相關(guān)的許可信息。用 FreeRTOS 做產(chǎn)品時(shí)需要看看。對于個(gè)人學(xué)習(xí),暫時(shí)不需要關(guān)心。
FreeRTOS-Plus 文件夾
FreeRTOS-Plus 文件夾里存放的是第三方產(chǎn)品。
該文件里面也有 Demo 和 Source 文件夾。Source 文件夾里存放的是一些擴(kuò)展功能源碼文件,例如 CLI、TCP、Trace等等。Demo 文件夾里存放的是擴(kuò)展功能的示例工程。
如果只是學(xué)習(xí)和使用 FreeRTOS 系統(tǒng)內(nèi)核,這部分內(nèi)容就沒必要看了。
學(xué)習(xí)資料
官方的資料還是豐富的,打開官網(wǎng)即可獲取到
可以看在線的資料文檔,當(dāng)然也可以下載官方 PDF 文件
兩個(gè) PDF 文件,一個(gè)是手把手入門教程,一個(gè)是 API 參考手冊。
不過,這些資料都是英文的。
最后
本篇文章簡單介紹了 FreeRTOS 的一些基本情況,以及源碼文件存放結(jié)構(gòu)等。源碼獲取和資料獲取都做了簡單介紹說明。
為了方便學(xué)習(xí),我將官方 PDF 資料和源碼已經(jīng)下載,并且搜集了一些 FreeRTOS 的學(xué)習(xí)資料,一起打包放在網(wǎng)盤里了。
在公眾號(hào)后臺(tái)留言【freertos】
今天先到這,下次繼續(xù)。加油~
公眾號(hào)【一起學(xué)嵌入式】,精彩首先送達(dá)
總結(jié)
以上是生活随笔為你收集整理的FreeRTOS快速入门-初探FreeRTOS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql创建视图语句_MySQL创建视
- 下一篇: spnc币吧_CCIEC币-目前是CPU