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