freertos介紹

初識FreeRTOS
1.什麼是FreeRTOS?Free Real Time Operating System實時操作系統。
RTOS 不是指某一個確定的系統,而是指一類系統。比如 uC/OS,FreeRTOS,RTX,RT-Thread 等這些都是 RTOS 類操作系統。
操作系統允許多個任務同時運行,這個叫做多任務。實際上,一個處理器核心在某一時刻只能運行一個任務。操作系統中任務調度器的責任就是決定在某一時刻究竟運行哪個任務。任務調度在各個任務之間的切換非常快,就給人們造成了同一時刻有多個任務同時運行的錯覺。
某些操作系統給每個任務分配同樣的運行時間,時間到了就輪到下一個任務,比如Unix 操作系統。 FreeRTOS 操作系統則是由用戶給每個任務分配一個任務優先級,任務調度器就可以根據此優先級來決定下一刻應該運行哪個任務。
FreeRTOS 是 RTOS 系統的一種,FreeRTOS 十分的小巧,可以在資源有限的微控制器中運行,當然,FreeRTOS 不僅侷限於在微控制器中使用。但從文件數量上來看 FreeRTOS 要比uC/OSII 和 uC/OSIII 小的多。
2.爲什麼擇 選擇 FreeRTOS ?
RTOS 類系統有很多,比如 uC/OS,資料很多,尤其是中文資料,那爲什麼要選擇 FreeRTOS 呢?

FreeRTOS是免費的,學習RTOS操作系統的話 uC/OS是首選,但要做產品的話,免費的FreeRTOS操作系統就是個不錯的選擇。

許多半導體廠商產品的 SDK(Software Development Kit—軟件開發工具包) 包就使用 FreeRTOS 作爲其操作系統,尤其是 WIFI、藍牙這些帶協議棧的芯片或模塊。

簡單,因爲FreeRTOS 的文件數量很少。

3.FreeRTOS 特點
FreeRTOS 是一個可裁剪的小型 RTOS 系統,其特點包括:

FreeRTOS 的內核支持搶佔式,合作式和時間片調度。
提供了一個用於低功耗的 Tickless 模式。
系統的組件在創建時可以選擇動態或者靜態的 RAM,比如任務、消息隊列、信號量、軟件定時器等等。
FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 單元,如 STM32F429。
FreeRTOS 系統簡單、小巧、易用,通常情況下內核佔用 4k-9k 字節的空間。
高可移植性,代碼主要 C 語言編寫。
高效的軟件定時器。
強大的跟蹤執行功能。
堆棧溢出檢測功能。
任務數量不限。
任務優先級不限。
FreeRTOS資料與源碼下載
要找資料,官網是最好的地方,FreeRTOS的官網是www.freertos.org。

進入 FreeRTOS 首頁,就會看到download下載鏈接,進入後下載“FreeRTOSv9.0.0.exe”文件,下載完成後雙擊運行,下載源碼到指定目錄。
由於該網站是國外網站,加載的比較慢,所以此處放上資料和源碼的百度雲鏈接-

FreeRTOS源碼文件介紹
打開源碼文件夾,可以看到有兩個文件夾,4 個 HTML 格式的網頁和一個 txt 文檔,HTML 網頁和 txt 文檔就不用介紹了,看名字就知道是什麼東西了,重點在於上面那兩個文件夾:FreeRTOS 和 FreeRTOS-Plus,這兩個文件夾裏面的東西就是 FreeRTOS 的源碼。
在這裏插入圖片描述

1.FreeRTOS文件夾
打開 FreeRTOS 文件夾,可以看到裏面有三個文件夾:
在這裏插入圖片描述

Demo 文件夾裏面就是 FreeRTOS 針對不同的 MCU 提供的相關例程,其中就有 ST 的 F1、F4 和F7 的相關例程,這對於我們學習來說是非常友好的,我們在移植的時候就會參考這些例程。

License 文件夾裏面就是 相關的許可信息,要用 FreeRTOS 做產品的得仔細看看,尤其是要出口的產品。
在這裏插入圖片描述

Source 文件夾 裏面就是 FreeRTOS 的源碼文件,也是我們以後打交道的,可以看出,相比於 uC/OS來說 FreeRTOS 的文件非常少!include 文件夾是一些頭文件,移植的時候是需要的,下面的這些.C 文件就是 FreeRTOS 的源碼文件了,移植的時候肯定也是需要的。

重點來看一下 portable這個文件夾,FreeRTOS 是個系統,歸根結底就是個純軟件的東西,它是怎麼和硬件聯繫在一起的呢?軟件到硬件中間必須有一個橋樑,portable 文件夾裏面的東西就是 FreeRTOS系統和具體的硬件之間的連接橋樑!不同的編譯環境,不同的 MCU,其橋樑應該是不同的,打開 portable 文件夾,如下圖所示:
在這裏插入圖片描述

MemMang 這個文件夾是跟內存管理相關的,我們移植的時候是必須的。Keil 文件夾裏面的東西肯定也是必須的,但是我們打開Keil文件夾以後裏面只有一個文件:See-also-the-RVDS-directory.txt,意思就是參考RVDS文件夾裏面的東西!

在這裏插入圖片描述

RVDS 文件夾針對不同的架構的 MCU 做了詳細的分類,STM32F429 就參考 ARM_CM4F,打開 ARM_CM4F 文件夾,裏面有兩個文件,這兩個文件就是我們移植的時候所需要的!

2.FreeRTOS-Plus 文件夾
打開 FreeRTOS-Plus可以看到,裏面也有 Demo 和 Source,Demo 文件夾裏存放的肯定是一些例程, 而Source文件夾中存放的並不是 FreeRTOS 系統的源碼,是在這個 FreeRTOS系統上另外增加的一些功能代碼,比如 CLI、FAT、Trace 等等。就係統本身而言,和 FreeRTOS裏面的一模一樣的,所以我們如果只是學習 FreeRTOS 這個系統的話,FreeRTOS-Plus 就沒必要看了。
————————————————
感謝原博主「淺毅」的原創.
版權聲明:本文爲CSDN博主「淺毅」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_37634122/article/details/104283673

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章