2.FreeRTOS簡介
FreeRTOS 是市場領先的面向微控制器和小型微處理器的實時操作系統 (RTOS),與世界領先的芯片公司合作開發。FreeRTOS目前由亞馬遜公司管理,遵循MIT開源許可證協議進行免費分發,包括一個實時內核和一組不斷豐富的 IoT 庫。
FreeRTOS的代碼庫支持 40 多種 MCU 架構和 10多種工具鏈,包括最新的 RISC-V和ARMv8-M (Arm Cortex-M33) 微控制器。
3.FreeRTOS源碼包組成結構
在FreeRTOS官網可以下載到最新的源碼包,當前版本為FreeRTOSv202212.01
FreeRTOS源碼包主要包含2個子目錄:FreeRTOS 和 FreeRTOS-Plus。
(1)FreeRTOS目錄包含實時內核源文件和示例工程;
(2)FreeRTOS-Plus 庫實現了 FreeRTOS 內核的附加功能,包含FreeRTOS-Plus-TCP、FreeRTOS-Plus-CLI和FreeRTOS-Plus-IO等模塊及示例工程。
FreeRTOS目錄包含實時內核源文件目錄Source和示例工程目錄Demo。
FreeRTOS/Source目錄包含內核源文件、內核頭文件目錄include和處理器相關的移植文件目錄portable。
FreeRTOS/Source目錄下的內核源文件包含3個核心 RTOS 代碼,分別為:task.c、queue.c和list.c。還包含4個可選代碼,timers.c實現了軟件計時器;croutine.c實現了協程功能;event_groups.c實現了事件組功能;stream_buffer.c實現了流緩沖區功能。
FreeRTOS/portable目錄包含了不同編譯器和芯片架構對應的可移植層代碼,位于FreeRTOS/Source/portable/[compiler]/[architecture]子目錄下,其中[compiler]和[architecture]分別表示編譯器和芯片架構。例如,FreeRTOS\\Source\\portable\\RVDS\\ARM_CM3子目錄表示RVDS及Keil開發環境下ARM Cortex-M3架構處理器的可移植層代碼。
此外,FreeRTOS/portable目錄下還包含用于內存管理的堆分配方案代碼,位于FreeRTOS/Source/portable/MemMang 目錄中,支持heap_1.c~heap_5.c五種分配方案。
FreeRTOS/Demo目錄包含所有示例工程的共用目錄Common以及不同編譯器和芯片架構對應的專用目錄。例如,FreeRTOS/Demo/CORTEX_STM32F103_Keil目錄是STM32F103微控制器的Keil工程目錄,對應架構為ARM Cortex-M3。
4.FreeRTOS項目工程建立方法
4.1概要
本節主要介紹基于FreeRTOS源碼包,新建FreeRTOS項目工程所需的必備源文件、頭文件、配置文件和可選源文件。
4.2必備源文件
FreeRTOS項目工程必須包含以下源文件:
(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頭文件
編譯器應包含如下頭文件路徑:
(1)FreeRTOS/Source/include
(2)FreeRTOS/Source/portable/[compiler]/[architecture]
(3)使用的示例項目中FreeRTOSConfig.h配置文件所在的目錄
4.4配置文件
配置文件FreeRTOSConfig.h用于為構建的應用程序量身定制 RTOS 內核,并根據實際硬件情況對CPU主頻、中斷優先級等參數進行配置。
FreeRTOS/Demo下的示例項目中均含有配置文件FreeRTOSConfig.h,新建項目時選取相同編譯器及相同芯片架構的FreeRTOSConfig.h文件作為模板,在此基礎上進行修改即可。
4.5可選源文件
FreeRTOS項目工程的可選源文件包括:
(1)FreeRTOS/Source/timers.c,用于軟件定時器功能;
(2)FreeRTOS/Source/event_groups.c,用于事件組功能;
(3)FreeRTOS/Source/stream_buffer.c,用于流緩沖區功能;
(4)FreeRTOS/Source/croutine.c,用于協程功能,注意目前協程功能已 被棄用,不推薦用于新設計。
4.6小結
本節介紹了基于FreeRTOS源碼包新建FreeRTOS項目工程所需的源文件和頭文件。在編譯工程時可能會報一些錯誤;在編譯通過后,調試功能時也可能會遇到一些問題,到時需要具體問題具體分析解決了。
-
微控制器
+關注
關注
48文章
7559瀏覽量
151468 -
ARM
+關注
關注
134文章
9098瀏覽量
367686 -
微處理器
+關注
關注
11文章
2263瀏覽量
82474 -
計時器
+關注
關注
1文章
420瀏覽量
32719 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62198
發布評論請先 登錄
相關推薦
評論