2.FreeRTOS簡(jiǎn)介
FreeRTOS 是市場(chǎng)領(lǐng)先的面向微控制器和小型微處理器的實(shí)時(shí)操作系統(tǒng) (RTOS),與世界領(lǐng)先的芯片公司合作開(kāi)發(fā)。FreeRTOS目前由亞馬遜公司管理,遵循MIT開(kāi)源許可證協(xié)議進(jìn)行免費(fèi)分發(fā),包括一個(gè)實(shí)時(shí)內(nèi)核和一組不斷豐富的 IoT 庫(kù)。
FreeRTOS的代碼庫(kù)支持 40 多種 MCU 架構(gòu)和 10多種工具鏈,包括最新的 RISC-V和ARMv8-M (Arm Cortex-M33) 微控制器。
3.FreeRTOS源碼包組成結(jié)構(gòu)
在FreeRTOS官網(wǎng)可以下載到最新的源碼包,當(dāng)前版本為FreeRTOSv202212.01
FreeRTOS源碼包主要包含2個(gè)子目錄:FreeRTOS 和 FreeRTOS-Plus。
(1)FreeRTOS目錄包含實(shí)時(shí)內(nèi)核源文件和示例工程;
(2)FreeRTOS-Plus 庫(kù)實(shí)現(xiàn)了 FreeRTOS 內(nèi)核的附加功能,包含F(xiàn)reeRTOS-Plus-TCP、FreeRTOS-Plus-CLI和FreeRTOS-Plus-IO等模塊及示例工程。
FreeRTOS目錄包含實(shí)時(shí)內(nèi)核源文件目錄Source和示例工程目錄Demo。
FreeRTOS/Source目錄包含內(nèi)核源文件、內(nèi)核頭文件目錄include和處理器相關(guān)的移植文件目錄portable。
FreeRTOS/Source目錄下的內(nèi)核源文件包含3個(gè)核心 RTOS 代碼,分別為:task.c、queue.c和list.c。還包含4個(gè)可選代碼,timers.c實(shí)現(xiàn)了軟件計(jì)時(shí)器;croutine.c實(shí)現(xiàn)了協(xié)程功能;event_groups.c實(shí)現(xiàn)了事件組功能;stream_buffer.c實(shí)現(xiàn)了流緩沖區(qū)功能。
FreeRTOS/portable目錄包含了不同編譯器和芯片架構(gòu)對(duì)應(yīng)的可移植層代碼,位于FreeRTOS/Source/portable/[compiler]/[architecture]子目錄下,其中[compiler]和[architecture]分別表示編譯器和芯片架構(gòu)。例如,F(xiàn)reeRTOS\\Source\\portable\\RVDS\\ARM_CM3子目錄表示RVDS及Keil開(kāi)發(fā)環(huán)境下ARM Cortex-M3架構(gòu)處理器的可移植層代碼。
此外,F(xiàn)reeRTOS/portable目錄下還包含用于內(nèi)存管理的堆分配方案代碼,位于FreeRTOS/Source/portable/MemMang 目錄中,支持heap_1.c~heap_5.c五種分配方案。
FreeRTOS/Demo目錄包含所有示例工程的共用目錄Common以及不同編譯器和芯片架構(gòu)對(duì)應(yīng)的專(zhuān)用目錄。例如,F(xiàn)reeRTOS/Demo/CORTEX_STM32F103_Keil目錄是STM32F103微控制器的Keil工程目錄,對(duì)應(yīng)架構(gòu)為ARM Cortex-M3。
4.FreeRTOS項(xiàng)目工程建立方法
4.1概要
本節(jié)主要介紹基于FreeRTOS源碼包,新建FreeRTOS項(xiàng)目工程所需的必備源文件、頭文件、配置文件和可選源文件。
4.2必備源文件
FreeRTOS項(xiàng)目工程必須包含以下源文件:
(1)FreeRTOS/Source/tasks.c
(2)FreeRTOS/Source/queue.c
(3)FreeRTOS/Source/list.c
(4)FreeRTOS/Source/portable/[compiler]/[architecture]/port.c
(5)FreeRTOS/Source/portable/MemMang/heap_x.c,x為1~5
4.3頭文件
編譯器應(yīng)包含如下頭文件路徑:
(1)FreeRTOS/Source/include
(2)FreeRTOS/Source/portable/[compiler]/[architecture]
(3)使用的示例項(xiàng)目中FreeRTOSConfig.h配置文件所在的目錄
4.4配置文件
配置文件FreeRTOSConfig.h用于為構(gòu)建的應(yīng)用程序量身定制 RTOS 內(nèi)核,并根據(jù)實(shí)際硬件情況對(duì)CPU主頻、中斷優(yōu)先級(jí)等參數(shù)進(jìn)行配置。
FreeRTOS/Demo下的示例項(xiàng)目中均含有配置文件FreeRTOSConfig.h,新建項(xiàng)目時(shí)選取相同編譯器及相同芯片架構(gòu)的FreeRTOSConfig.h文件作為模板,在此基礎(chǔ)上進(jìn)行修改即可。
4.5可選源文件
FreeRTOS項(xiàng)目工程的可選源文件包括:
(1)FreeRTOS/Source/timers.c,用于軟件定時(shí)器功能;
(2)FreeRTOS/Source/event_groups.c,用于事件組功能;
(3)FreeRTOS/Source/stream_buffer.c,用于流緩沖區(qū)功能;
(4)FreeRTOS/Source/croutine.c,用于協(xié)程功能,注意目前協(xié)程功能已 被棄用,不推薦用于新設(shè)計(jì)。
4.6小結(jié)
本節(jié)介紹了基于FreeRTOS源碼包新建FreeRTOS項(xiàng)目工程所需的源文件和頭文件。在編譯工程時(shí)可能會(huì)報(bào)一些錯(cuò)誤;在編譯通過(guò)后,調(diào)試功能時(shí)也可能會(huì)遇到一些問(wèn)題,到時(shí)需要具體問(wèn)題具體分析解決了。
-
微控制器
+關(guān)注
關(guān)注
48文章
7651瀏覽量
152122 -
ARM
+關(guān)注
關(guān)注
134文章
9169瀏覽量
369237 -
微處理器
+關(guān)注
關(guān)注
11文章
2274瀏覽量
82778 -
計(jì)時(shí)器
+關(guān)注
關(guān)注
1文章
426瀏覽量
32862 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62399
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何移植FreeRTOS的源碼
下載并整理FreeRTOS源碼
freertos官方源碼
FreeRTOS的移植與FreeRTOS源碼文件作用介紹
如何實(shí)現(xiàn)FreeRTOS在Cortex-M3上的移植?
STM32移植FreeRTOS(圖文實(shí)操)
![STM32移植<b class='flag-5'>FreeRTOS</b>(圖文實(shí)操)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【STM32】FreeRTOS移植
![【STM32】<b class='flag-5'>FreeRTOS</b>移植](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
初入FreeRTOS
![初入<b class='flag-5'>FreeRTOS</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
FreeRTOS系列第8篇---FreeRTOS內(nèi)存管理
![<b class='flag-5'>FreeRTOS</b>系列第8篇---<b class='flag-5'>FreeRTOS</b>內(nèi)存管理](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32FreeRTOS學(xué)習(xí)資料分享
FreeRTOS的源碼下載
![<b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>源碼</b>下載](https://file.elecfans.com/web2/M00/90/3E/pYYBAGPlswWAJqZGAANCwPuIji0715.jpg)
FreeRTOS的移植
![<b class='flag-5'>FreeRTOS</b>的移植](https://file.elecfans.com/web2/M00/91/0C/pYYBAGPq5NiAc3rPAABCy4-RL0g533.jpg)
評(píng)論