寫在前面:
本文章旨在總結備份、方便以後查詢,由於是個人總結,如有不對,歡迎指正;另外,內容大部分來自網絡、書籍、和各類手冊,如若侵權請告知,馬上刪帖致歉。
目錄
FreeRTOS官網:https://www.freertos.org/index.html
一、V9.0.0源碼版本獲取
1、官方託管在 SVN的源代碼鏈接:https://sourceforge.net/projects/freertos/files/FreeRTOS/(推薦)
2、官方託管在 GitHub的源代碼鏈接:https://github.com/FreeRTOS/FreeRTOS
這裏使用 V9.0.0版本,包括之後都是以 V9.0.0版本爲參考,不要問我爲什麼,哪個版本成熟穩定用那個
二、文件分類
FreeRTOSv9.0.0
│
├─ New - Direct to Task Notifications
├─ New - FreeRTOS+TCP
├─ Quick_Start_Guide
├─ Upgrading-to-FreeRTOS-9
│
├─ FreeRTOS-Plus // 包含 FreeRTOS+組件(TCP/CLI/IO/UDP)和演示項目
│ │
│ ├─ Demo
│ ├─ Source
│ └─ readme.txt // 當前目錄的一些文檔說明
│
├─ FreeRTOS // 包含 FreeRTOS實時內核源代碼文件和演示項目(主要移植這個)
│ │
│ ├─ Demo // 包含演示應用程序項目
│ ├─ License // 許可說明
│ ├─ Source // 包含實時內核源代碼
│ ├─ links_to_doc_pages_for_the_demo_projects
│ └─ readme.txt // 當前目錄的一些文檔說明
│
└─ readme.txt // 主目錄文檔的大致說明
因爲之後的實驗是以移植 FreeRTOS這個文件爲主,所以主要講解這個文件裏面的東西
1、首先是 FreeRTOS/Source文件
FreeRTOS
└─ Source // 核心 FreeRTOS內核文件
│
├─ include // 核心 FreeRTOS內核頭文件
│
├─ portable // 與處理器相關的特定代碼
│ │
│ ├─ Compiler x // 編譯器x 支持的所有端口
│ ├─ Compiler y // 編譯器y 支持的所有端口
│ ├─ MemMang // 堆實現的示例
│ └─ readme.txt // 當前目錄的一些文檔說明
│
└─ readme.txt // 當前目錄的一些文檔說明
FreeRTOS/Source目錄包含 FreeRTOS源代碼,幷包含它自己的自述文件。
FreeRTOS/Source/Portable目錄包含特定於特定微控制器和或編譯器的文件。
FreeRTOS/Source/include目錄包含實時內核頭文件。
核心 RTOS代碼包含在三個文件中,他們分別是 tasks.c, queue.c和 list.c,這三個文件位於 FreeRTOS / Source目錄中;同一目錄下還包含兩個名爲 timers.c和 croutine.c的可選文件,它們分別實現軟件計時器和協同例程功能。
同樣的,官方提供的幾個堆的分配方案也位於可移植層中。各種樣本 heap_x.c文件位於 FreeRTOS / Source / portable / MemMang目錄中
2、FreeRTOS/Demo文件
FreeRTOS
└─ Demo // 演示應用程序項目
│
├─ Common // 所有演示使用的演示應用程序文件
│
├─ Dir x // 端口 x的演示應用程序構建文件
│
├─ Dir y // 端口 y的演示應用程序構建文件
│
└─ readme.txt // 當前目錄的一些文檔說明
FreeRTOS/Demo目錄包含用於每種處理器體系結構和編譯器端口的演示應用程序。演示應用程序的大部分代碼對所有端口通用,並且包含在 FreeRTOS / Demo / Common / Minimal目錄中(位於 FreeRTOS / Demo / Common / Full目錄中的代碼是舊代碼,僅由PC端口使用) 。
其餘的 FreeRTOS / Demo子目錄包含用於構建單個演示應用程序的預配置項目,目錄被命名以指示它們所關聯的端口;每個 RTOS端口目錄下包含着自己的 readme文件,而且它們還具有其自己的網頁,該網頁詳細說明了可在其中找到該端口的演示應用程序的目錄。
三、其他
具體的關於官方文檔解析的更多信息可以看當前目錄下的 readme文件以及在官方的這個鏈接查看:https://www.freertos.org/a00017.html