2.FreeRTOS簡(jiǎn)介
FreeRTOS 是市場(chǎng)領(lǐng)先的面向微控制器和小型微處理器的實(shí)時(shí)操作系統(tǒng) (RTOS),與世界領(lǐng)先的芯片公司合作開發(fā)。FreeRTOS目前由亞馬遜公司管理,遵循MIT開源許可證協(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開發(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)的專用目錄。例如,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文章
7559瀏覽量
151486 -
ARM
+關(guān)注
關(guān)注
134文章
9098瀏覽量
367708 -
微處理器
+關(guān)注
關(guān)注
11文章
2263瀏覽量
82485 -
計(jì)時(shí)器
+關(guān)注
關(guān)注
1文章
420瀏覽量
32722 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
484瀏覽量
62202
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論