Silicon Labs(亦稱“芯科科技”)制作的本系列博客是在Flex Gecko上添加MicriumOS的設(shè)計指南,并且至少可以在設(shè)備上運行一個任務。
開始
首先需要安裝最新的Simplicity Studio,以避免隨著時間的推移,軟件更新造成的沖突。在安裝該工具之后,甚至在嘗試添加任何內(nèi)容之前,必須確保擁有必要的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 - 初始設(shè)置驗證
加載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。在我的情況下,我將所有內(nèi)容都保留在默認值中,只需單擊“Generate”,如圖5所示。
圖5 - RAIL項目配置
此時,您現(xiàn)在應該設(shè)置一個基本的Flex Gecko示例來構(gòu)建和運行。但是,我發(fā)現(xiàn)默認的項目設(shè)置將編譯器優(yōu)化設(shè)置為“Optimizefor size (-Os)”,這最終會使項目調(diào)試變得困難。因此,我將優(yōu)化切換為“None(-O0)”。
圖6 - 編譯器優(yōu)化
將Micrium OS添加到工作區(qū)
現(xiàn)在您已經(jīng)構(gòu)建并運行了一個基本的Flex Gecko示例,我們繼續(xù)并開始將MicriumOS源文件添加到工作區(qū)中。首先,找到MicriumOS目錄,它應該位于:
C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.3\platform\micrium_os
現(xiàn)在在Simplicity Studio中將“micrium_os”文件夾拖放到您的項目(simple_rail_without_hal)中。在執(zhí)行此操作時,請確保在單擊“OK”之前選擇了“Copyfiles and folders”,如圖7所示。
圖7 - 將Micrium OS文件夾添加到項目
然后您將不得不刪除使用Micrium OS添加的所有不必要的文件(這很乏味)。
最后,編譯器需要知道在哪里查找頭文件,因此我們必須為項目設(shè)置添加兩個編譯器包含路徑:
"${workspace_loc:/${ProjName}/micrium_os}""${workspace_loc:/${ProjName}/micrium_os/cfg}"
圖8- 包含路徑的Micrium OS編譯器
配置Micrium OS
現(xiàn)在您已將Micrium OS作為您的項目的一部分,讓我們繼續(xù)對默認的MicriumOS配置進行一些小的調(diào)整。
修改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()來實現(xiàn)這一點。啟動任務還需要自己的堆棧和任務控制塊(OS_TCB)以及其函數(shù)原型。
以下是StartTask函數(shù)的主體,其中內(nèi)核tick被初始化,以及Common模塊。請注意,該功能在結(jié)束時包含一個無限循環(huán),延遲時間為1秒。這樣做是為了讓CPU時間用于其他正在或?qū)⒆罱K在系統(tǒng)上運行的任務。
最后,讓我們修改main()來初始化CPU,將中斷處理程序重新分配為內(nèi)核感知,初始化內(nèi)核,創(chuàng)建啟動任務并啟動操作系統(tǒng)。
您現(xiàn)在被設(shè)置為構(gòu)建并運行該項目。你可以在while循環(huán)里面的StartTask中放置一個斷點,注意你會每秒鐘觸碰一次(或者按照你在OSTimeDly()中配置的延遲指定)。
-
mcu
+關(guān)注
關(guān)注
146文章
17961瀏覽量
366104 -
Silicon Labs
+關(guān)注
關(guān)注
11文章
334瀏覽量
63080 -
MicriumOS
+關(guān)注
關(guān)注
0文章
1瀏覽量
2402
原文標題:【設(shè)計指南】在Flex Gecko上添加Micrium OS
文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
RK3568驅(qū)動指南|驅(qū)動基礎(chǔ)進階篇-進階7 向系統(tǒng)中添加一個系統(tǒng)調(diào)用

flex-builder為什么無法構(gòu)建xserver?
Molex的Temp-Flex混合型帶狀電纜哪家專業(yè)?赫聯(lián)電子好嗎?
如何使用flex-builder構(gòu)建aruco庫?
Flex Power Designer軟件工具助力電源系統(tǒng)設(shè)計
請問DLPLCRC900DEVM上的Flex 和dlp050XY上的Flex網(wǎng)絡名稱怎么對應?
高溫氧氣分析儀OXY-Flex在工業(yè)領(lǐng)域的廣泛應用及技術(shù)解析

英飛凌與Flex聯(lián)合展示軟件定義汽車區(qū)域控制器平臺
英飛凌攜手Flex展示用于軟件定義汽車的區(qū)域控制器設(shè)計平臺

ADI收購Flex Logix,強化數(shù)字產(chǎn)品組合
電壓調(diào)節(jié)器IC上堆疊電感的SMT指南

評論