FreeRTOS實(shí)時(shí)操作系統(tǒng)特點(diǎn)介紹
1.什么是FreeRTOS?
Free 即免費(fèi)的,RTOS 全稱是 Real Time Operating System,中文就是實(shí)時(shí)操作系統(tǒng)。注意,RTOS 不是指某一個(gè)確定的系統(tǒng),而是指一類系統(tǒng)。比如 uC/OS,F(xiàn)reeRTOS,RTX,RT-Thread 等這些都是 RTOS 類操作系統(tǒng)。
操作系統(tǒng)允許多個(gè)任務(wù)同時(shí)運(yùn)行,這個(gè)叫做多任務(wù)。實(shí)際上,一個(gè)處理器核心在某一時(shí)刻只能運(yùn)行一個(gè)任務(wù)。操作系統(tǒng)中任務(wù)調(diào)度器的責(zé)任就是決定在某一時(shí)刻究竟運(yùn)行哪個(gè)任務(wù)。任務(wù)調(diào)度在各個(gè)任務(wù)之間的切換非常快,就給人們?cè)斐闪送粫r(shí)刻有多個(gè)任務(wù)同時(shí)運(yùn)行的錯(cuò)覺(jué)。
某些操作系統(tǒng)給每個(gè)任務(wù)分配同樣的運(yùn)行時(shí)間,時(shí)間到了就輪到下一個(gè)任務(wù),比如Unix 操作系統(tǒng)。 FreeRTOS 操作系統(tǒng)則是由用戶給每個(gè)任務(wù)分配一個(gè)任務(wù)優(yōu)先級(jí),任務(wù)調(diào)度器就可以根據(jù)此優(yōu)先級(jí)來(lái)決定下一刻應(yīng)該運(yùn)行哪個(gè)任務(wù)。
FreeRTOS 是 RTOS 系統(tǒng)的一種,F(xiàn)reeRTOS 十分的小巧,可以在資源有限的微控制器中運(yùn)行,當(dāng)然,F(xiàn)reeRTOS 不僅局限于在微控制器中使用。但從文件數(shù)量上來(lái)看 FreeRTOS 要比uC/OSII 和 uC/OSIII 小的多。
2.為什么擇 選擇 FreeRTOS ?
RTOS 類系統(tǒng)有很多,比如 uC/OS,資料很多,尤其是中文資料,那為什么要選擇 FreeRTOS 呢?
FreeRTOS是免費(fèi)的,學(xué)習(xí)RTOS操作系統(tǒng)的話 uC/OS是首選,但要做產(chǎn)品的話,免費(fèi)的FreeRTOS操作系統(tǒng)就是個(gè)不錯(cuò)的選擇。
許多半導(dǎo)體廠商產(chǎn)品的 SDK(Software Development Kit—軟件開發(fā)工具包) 包就使用 FreeRTOS 作為其操作系統(tǒng),尤其是 WIFI、藍(lán)牙這些帶協(xié)議棧的芯片或模塊。
簡(jiǎn)單,因?yàn)镕reeRTOS 的文件數(shù)量很少。
3.FreeRTOS 特點(diǎn)
FreeRTOS 是一個(gè)可裁剪的小型 RTOS 系統(tǒng),其特點(diǎn)包括:
FreeRTOS 的內(nèi)核支持搶占式,合作式和時(shí)間片調(diào)度。
提供了一個(gè)用于低功耗的 Tickless 模式。
系統(tǒng)的組件在創(chuàng)建時(shí)可以選擇動(dòng)態(tài)或者靜態(tài)的 RAM,比如任務(wù)、消息隊(duì)列、信號(hào)量、軟件定時(shí)器等等。
FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 單元,如 STM32F429。
FreeRTOS 系統(tǒng)簡(jiǎn)單、小巧、易用,通常情況下內(nèi)核占用 4k-9k 字節(jié)的空間。
高可移植性,代碼主要 C 語(yǔ)言編寫。
高效的軟件定時(shí)器。
強(qiáng)大的跟蹤執(zhí)行功能。
堆棧溢出檢測(cè)功能。
任務(wù)數(shù)量不限。
任務(wù)優(yōu)先級(jí)不限。
FreeRTOS資料與源碼下載
要找資料,官網(wǎng)是最好的地方,F(xiàn)reeRTOS的官網(wǎng)是www.freertos.org。
進(jìn)入 FreeRTOS 首頁(yè),就會(huì)看到download下載鏈接,進(jìn)入后下載“FreeRTOSv9.0.0.exe”文件,下載完成后雙擊運(yùn)行,下載源碼到指定目錄。
由于該網(wǎng)站是國(guó)外網(wǎng)站,加載的比較慢,所以此處放上資料和源碼的百度云鏈接-
FreeRTOS源碼文件介紹
打開源碼文件夾,可以看到有兩個(gè)文件夾,4 個(gè) HTML 格式的網(wǎng)頁(yè)和一個(gè) txt 文檔,HTML 網(wǎng)頁(yè)和 txt 文檔就不用介紹了,看名字就知道是什么東西了,重點(diǎn)在于上面那兩個(gè)文件夾:FreeRTOS 和 FreeRTOS-Plus,這兩個(gè)文件夾里面的東西就是 FreeRTOS 的源碼。
1.FreeRTOS文件夾
打開 FreeRTOS 文件夾,可以看到里面有三個(gè)文件夾:
Demo 文件夾里面就是 FreeRTOS 針對(duì)不同的 MCU 提供的相關(guān)例程,其中就有 ST 的 F1、F4 和F7 的相關(guān)例程,這對(duì)于我們學(xué)習(xí)來(lái)說(shuō)是非常友好的,我們?cè)谝浦驳臅r(shí)候就會(huì)參考這些例程。
License 文件夾里面就是 相關(guān)的許可信息,要用 FreeRTOS 做產(chǎn)品的得仔細(xì)看看,尤其是要出口的產(chǎn)品。
Source 文件夾 里面就是 FreeRTOS 的源碼文件,也是我們以后打交道的,可以看出,相比于 uC/OS來(lái)說(shuō) FreeRTOS 的文件非常少!include 文件夾是一些頭文件,移植的時(shí)候是需要的,下面的這些.C 文件就是 FreeRTOS 的源碼文件了,移植的時(shí)候肯定也是需要的。
重點(diǎn)來(lái)看一下 portable這個(gè)文件夾,F(xiàn)reeRTOS 是個(gè)系統(tǒng),歸根結(jié)底就是個(gè)純軟件的東西,它是怎么和硬件聯(lián)系在一起的呢?軟件到硬件中間必須有一個(gè)橋梁,portable 文件夾里面的東西就是 FreeRTOS系統(tǒng)和具體的硬件之間的連接橋梁!不同的編譯環(huán)境,不同的 MCU,其橋梁應(yīng)該是不同的,打開 portable 文件夾,如下圖所示:
MemMang 這個(gè)文件夾是跟內(nèi)存管理相關(guān)的,我們移植的時(shí)候是必須的。Keil 文件夾里面的東西肯定也是必須的,但是我們打開Keil文件夾以后里面只有一個(gè)文件:See-also-the-RVDS-directory.txt,意思就是參考RVDS文件夾里面的東西!
RVDS 文件夾針對(duì)不同的架構(gòu)的 MCU 做了詳細(xì)的分類,STM32F429 就參考 ARM_CM4F,打開 ARM_CM4F 文件夾,里面有兩個(gè)文件,這兩個(gè)文件就是我們移植的時(shí)候所需要的!
2.FreeRTOS-Plus 文件夾
打開 FreeRTOS-Plus可以看到,里面也有 Demo 和 Source,Demo 文件夾里存放的肯定是一些例程, 而Source文件夾中存放的并不是 FreeRTOS 系統(tǒng)的源碼,是在這個(gè) FreeRTOS系統(tǒng)上另外增加的一些功能代碼,比如 CLI、FAT、Trace 等等。就系統(tǒng)本身而言,和 FreeRTOS里面的一模一樣的,所以我們?nèi)绻皇菍W(xué)習(xí) FreeRTOS 這個(gè)系統(tǒng)的話,F(xiàn)reeRTOS-Plus 就沒(méi)必要看了。
以上就是FreeRTOS實(shí)時(shí)操作系統(tǒng)特點(diǎn)介紹的詳細(xì)內(nèi)容,更多關(guān)于FreeRTOS實(shí)時(shí)操作系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- FreeRTOS實(shí)時(shí)操作系統(tǒng)在Cortex-M3上的移植過(guò)程
- FreeRTOS編碼標(biāo)準(zhǔn)及風(fēng)格指南
- freertos實(shí)時(shí)操作系統(tǒng)臨界段保護(hù)開關(guān)中斷及進(jìn)入退出
- FreeRTOS實(shí)時(shí)操作系統(tǒng)多任務(wù)管理基礎(chǔ)知識(shí)
- FreeRTOS操作系統(tǒng)的配置示例解析
- FreeRTOS實(shí)時(shí)操作系統(tǒng)移植操作示例指南
- FreeRTOS實(shí)時(shí)操作系統(tǒng)臨界段保護(hù)場(chǎng)合示例
- FreeRTOS實(shí)時(shí)操作系統(tǒng)結(jié)構(gòu)示例
- freertos實(shí)時(shí)操作系統(tǒng)空閑任務(wù)阻塞延時(shí)示例解析
- FreeRTOS實(shí)時(shí)操作系統(tǒng)內(nèi)核配置說(shuō)明
相關(guān)文章
FreeRTOS實(shí)時(shí)操作系統(tǒng)的列表與列表項(xiàng)操作示例
這篇文章主要為大家介紹了FreeRTOS實(shí)時(shí)操作系統(tǒng)的列表與列表項(xiàng)操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS進(jìn)階之系統(tǒng)延時(shí)完全解析
這篇文章主要為大家介紹了FreeRTOS進(jìn)階之系統(tǒng)延時(shí)完全解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS實(shí)時(shí)操作系統(tǒng)之可視化追蹤調(diào)試
這篇文章主要為大家介紹了FreeRTOS實(shí)時(shí)操作系統(tǒng)之可視化追蹤調(diào)試的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS實(shí)時(shí)操作系統(tǒng)內(nèi)核配置說(shuō)明
這篇文章主要為大家介紹了FreeRTOS實(shí)時(shí)操作系統(tǒng)內(nèi)核配置及說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS信號(hào)量API函數(shù)基礎(chǔ)教程
這篇文章主要為大家介紹了FreeRTOS信號(hào)量API函數(shù)的基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS實(shí)時(shí)操作系統(tǒng)空閑任務(wù)的阻塞延時(shí)實(shí)現(xiàn)
這篇文章主要為大家介紹了FreeRTOS實(shí)時(shí)操作系統(tǒng)空閑任務(wù)的阻塞延時(shí)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS進(jìn)階之任務(wù)通知示例完全解析
這篇文章主要為大家介紹了FreeRTOS進(jìn)階系列之任務(wù)通知的示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04FreeRTOS實(shí)時(shí)操作系統(tǒng)的任務(wù)應(yīng)用函數(shù)詳解
這篇文章主要為大家介紹了FreeRTOS實(shí)時(shí)操作系統(tǒng)的任務(wù)應(yīng)用函數(shù)的解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04freertos實(shí)時(shí)操作系統(tǒng)空閑任務(wù)阻塞延時(shí)示例解析
這篇文章主要為大家介紹了freertos實(shí)時(shí)操作系統(tǒng)的空閑任務(wù)及阻塞延時(shí)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04