隨著嵌入式應用程序變得越來越復雜,單片機裸機開發已經無法滿足工程師對于復雜程序的需求。于是具有多任務調度和實時響應特性的RTOS便越來越受工程師們青睞。瑞薩RA系列MCU兼容FreeRTOS系統,開發環境e2studio完美支持FreeRTOS,無需額外手動移植。以下介紹如何用瑞薩e2studio創建RA系列MCU的FreeRTOS工程。
對于不熟悉瑞薩的FSP開發環境的工程師們,此文章能夠很好幫助大家了解RA系列的FreeRTOS并快速創建FreeRTOS工程,詳細步驟如下:
1
創建工程
按正常步驟創建RA工程時,選擇FreeRTOS。

2
FreeRTOS的FSP配置
22.1 在Stack中創建任務,并命名為Task1和Task2,內存管理默認為靜態內存分配。

22.2 FreeRTOS通用項Common設置簡單說明。
注: 多個任務時,所有任務公用Common的設置。如task1和task2,在task1頁面設置完Common后,無需再在task2頁面設置。
2.2.1 Common->General:

2.2.2 Common -> Memory Allocation, Optional Functions:
內存分配:如果選擇了動態內存管理,則需Enable Support Dynamic Allocation,同時在New Stack –> RTOS中添加heap x(1~5),FreeRTOS在創建任務、信號量、隊列等時候會使用heap_x.c中的內存申請函數來申請內存。這些內存就是從Total Heap Size中申請的。
API函數:可enable或disable相應的FreeRTOS API函數。

22.3 任務中添加外設、隊列、信號量等

22.4 配置好定時器后,點Generate Project Content生產底層代碼。
本例程實現簡單的LED燈閃爍,定時器0和定時器1的周期分別配置為300ms和800ms。定時器和LED管腳的配置方法,就不在此做詳細說明了。
3
FreeRTOS底層代碼介紹
33.1 代碼生成,文件夾目錄如下

33.2 用戶無需手動調用API函數創建任務,FSP生成的main函數里會分別調用task1_create()和task2_create()創建任務,創建完成后執行vTaskStartScheduler ()啟動任務調度。

33.3 在任務中task1_entry.c和task2_entry.c添加用戶初始化和應用代碼。
帶FreeRTOS的工程里,生成的main函數里不會調用hal_entry.c,而是直接創建任務后,執行任務切換,進入任務函數task1_entry.c和task2_entry.c。

1
-
單片機
+關注
關注
6050文章
44687瀏覽量
641160 -
RA
+關注
關注
0文章
19瀏覽量
24738 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62771
發布評論請先 登錄
相關推薦
FreeRTOS中的任務管理
轉:freeRTOS任務創建
STM32CUBE的freertos的任務創建
FreeRTOS的任務創建過程
FreeRTOS創建任務的流程分享
FreeRTOS任務如何創建和刪除?
FreeRTOS筆記(四):任務創建/刪除,掛起/解掛詳解

#FreeRTOS學習筆記(二):任務創建/刪除,掛起/解掛

FreeRTOS高級篇2---FreeRTOS任務創建分析

FreeRTOS系列第10篇---FreeRTOS任務創建和刪除

評論