Silicon Labs(亦稱“芯科科技”)制作的本系列博客是在Flex Gecko上添加MicriumOS的設計指南,并且至少可以在設備上運行一個任務。
開始
首先需要安裝最新的Simplicity Studio,以避免隨著時間的推移,軟件更新造成的沖突。在安裝該工具之后,甚至在嘗試添加任何內容之前,必須確保擁有必要的SDK。以下是安裝項目:
-
32位MCU SDK - 5.5.0.0
-
Micrium OS - 5.4.0
-
Flex SDK - 2.3.0.0
然后,我將Flex Gecko EFR32FG12安裝到Wireless Started Kit Mainboard(BRD4001A)上。之后,我使用提供的USB電纜將其連接到PC。Simplicity Studio認識連接到WSTK的Flex Gecko,并顯示了Flex SDK中示例的鏈接(參見圖1)。
圖1 - 初始設置驗證
加載Basic Flex SDK示例
作為開始,我決定使用Flex SDK的“RAIL:Simple RAIL without HAL”示例。您可以通過擴展“Silicon Labs Flex SDK示例”鏈接下的項目列表來找到該項目:
圖2 - Flex SDK示例鏈接
然后找到并單擊圖3中顯示的示例將其添加到您的工作區(qū)中:
將示例加載到工作區(qū)后,您可能會收到如圖4所示的通知。只需單擊“OK”即可。
圖4 - 自動升級通知
然后您將看到simple_rail_without_hal.isc打開,您可以在其中配置RAIL。在我的情況下,我將所有內容都保留在默認值中,只需單擊“Generate”,如圖5所示。
圖5 - RAIL項目配置
此時,您現在應該設置一個基本的Flex Gecko示例來構建和運行。但是,我發(fā)現默認的項目設置將編譯器優(yōu)化設置為“Optimizefor size (-Os)”,這最終會使項目調試變得困難。因此,我將優(yōu)化切換為“None(-O0)”。
圖6 - 編譯器優(yōu)化
將Micrium OS添加到工作區(qū)
現在您已經構建并運行了一個基本的Flex Gecko示例,我們繼續(xù)并開始將MicriumOS源文件添加到工作區(qū)中。首先,找到MicriumOS目錄,它應該位于:
C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.3\platform\micrium_os
現在在Simplicity Studio中將“micrium_os”文件夾拖放到您的項目(simple_rail_without_hal)中。在執(zhí)行此操作時,請確保在單擊“OK”之前選擇了“Copyfiles and folders”,如圖7所示。
圖7 - 將Micrium OS文件夾添加到項目
然后您將不得不刪除使用Micrium OS添加的所有不必要的文件(這很乏味)。
最后,編譯器需要知道在哪里查找頭文件,因此我們必須為項目設置添加兩個編譯器包含路徑:
"${workspace_loc:/${ProjName}/micrium_os}""${workspace_loc:/${ProjName}/micrium_os/cfg}"
圖8- 包含路徑的Micrium OS編譯器
配置Micrium OS
現在您已將Micrium OS作為您的項目的一部分,讓我們繼續(xù)對默認的MicriumOS配置進行一些小的調整。
修改main.c
我們將修改由“RAIL:SimpleRAIL without HAL”示例生成的默認main.c。 Micrium OS需要在main.c中包含以下路徑,所以請繼續(xù)并按如下所示添加它們:
#include
#include
#include
#include
#include
我們將修改main.c來初始化MicriumOS并創(chuàng)建一個啟動任務。為此,您需要指定任務堆棧大小和優(yōu)先級。我們通常通過將它們定義為常量并將它們傳遞給OSTaskCreate()來實現這一點。啟動任務還需要自己的堆棧和任務控制塊(OS_TCB)以及其函數原型。
以下是StartTask函數的主體,其中內核tick被初始化,以及Common模塊。請注意,該功能在結束時包含一個無限循環(huán),延遲時間為1秒。這樣做是為了讓CPU時間用于其他正在或將最終在系統(tǒng)上運行的任務。
最后,讓我們修改main()來初始化CPU,將中斷處理程序重新分配為內核感知,初始化內核,創(chuàng)建啟動任務并啟動操作系統(tǒng)。
您現在被設置為構建并運行該項目。你可以在while循環(huán)里面的StartTask中放置一個斷點,注意你會每秒鐘觸碰一次(或者按照你在OSTimeDly()中配置的延遲指定)。
-
mcu
+關注
關注
146文章
17123瀏覽量
350973 -
Silicon Labs
+關注
關注
11文章
328瀏覽量
62469 -
MicriumOS
+關注
關注
0文章
1瀏覽量
2352
原文標題:【設計指南】在Flex Gecko上添加Micrium OS
文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論