0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Flex Gecko上添加MicriumOS的設(shè)計(jì)指南

Silicon Labs ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-07-10 09:12 ? 次閱讀

Silicon Labs(亦稱“芯科科技”)制作的本系列博客是在Flex Gecko上添加MicriumOS的設(shè)計(jì)指南,并且至少可以在設(shè)備上運(yùn)行一個任務(wù)。

開始

首先需要安裝最新Simplicity Studio,以避免隨著時間的推移,軟件更新造成的沖突。在安裝該工具之后,甚至在嘗試添加任何內(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)識連接到WSTK的Flex Gecko,并顯示了Flex SDK中示例的鏈接(參見圖1)。

圖1 - 初始設(shè)置驗(yàn)證

加載Basic Flex SDK示例

作為開始,我決定使用Flex SDK的“RAIL:Simple RAIL without HAL”示例。您可以通過擴(kuò)展“Silicon Labs Flex SDK示例”鏈接下的項(xiàng)目列表來找到該項(xiàng)目:

圖2 - Flex SDK示例鏈接

然后找到并單擊圖3中顯示的示例將其添加到您的工作區(qū)中:

將示例加載到工作區(qū)后,您可能會收到如圖4所示的通知。只需單擊“OK”即可。

圖4 - 自動升級通知

然后您將看到simple_rail_without_hal.isc打開,您可以在其中配置RAIL。在我的情況下,我將所有內(nèi)容都保留在默認(rèn)值中,只需單擊“Generate”,如圖5所示。

圖5 - RAIL項(xiàng)目配置

此時,您現(xiàn)在應(yīng)該設(shè)置一個基本的Flex Gecko示例來構(gòu)建和運(yùn)行。但是,我發(fā)現(xiàn)默認(rèn)的項(xiàng)目設(shè)置將編譯器優(yōu)化設(shè)置為“Optimizefor size (-Os)”,這最終會使項(xiàng)目調(diào)試變得困難。因此,我將優(yōu)化切換為“None(-O0)”。

圖6 - 編譯器優(yōu)化

Micrium OS添加到工作區(qū)

現(xiàn)在您已經(jīng)構(gòu)建并運(yùn)行了一個基本的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í)行此操作時,請確保在單擊“OK”之前選擇了“Copyfiles and folders”,如圖7所示。

圖7 - 將Micrium OS文件夾添加到項(xiàng)目

然后您將不得不刪除使用Micrium OS添加的所有不必要的文件(這很乏味)。

最后,編譯器需要知道在哪里查找頭文件,因此我們必須為項(xiàng)目設(shè)置添加兩個編譯器包含路徑:

"${workspace_loc:/${ProjName}/micrium_os}""${workspace_loc:/${ProjName}/micrium_os/cfg}"

圖8- 包含路徑的Micrium OS編譯器

配置Micrium OS

現(xiàn)在您已將Micrium OS作為您的項(xiàng)目的一部分,讓我們繼續(xù)對默認(rèn)的MicriumOS配置進(jìn)行一些小的調(diào)整。

修改main.c

我們將修改由“RAIL:SimpleRAIL without HAL”示例生成的默認(rèn)main.c。 Micrium OS需要在main.c中包含以下路徑,所以請繼續(xù)并按如下所示添加它們:

#include

#include

#include

#include

#include /* Private file, use should be limited */

我們將修改main.c來初始化MicriumOS并創(chuàng)建一個啟動任務(wù)。為此,您需要指定任務(wù)堆棧大小和優(yōu)先級。我們通常通過將它們定義為常量并將它們傳遞給OSTaskCreate()來實(shí)現(xiàn)這一點(diǎn)。啟動任務(wù)還需要自己的堆棧和任務(wù)控制塊(OS_TCB)以及其函數(shù)原型。

以下是StartTask函數(shù)的主體,其中內(nèi)核tick被初始化,以及Common模塊。請注意,該功能在結(jié)束時包含一個無限循環(huán),延遲時間為1秒。這樣做是為了讓CPU時間用于其他正在或?qū)⒆罱K在系統(tǒng)上運(yùn)行的任務(wù)。

最后,讓我們修改main()來初始化CPU,將中斷處理程序重新分配為內(nèi)核感知,初始化內(nèi)核,創(chuàng)建啟動任務(wù)并啟動操作系統(tǒng)。

您現(xiàn)在被設(shè)置為構(gòu)建并運(yùn)行該項(xiàng)目。你可以在while循環(huán)里面的StartTask中放置一個斷點(diǎn),注意你會每秒鐘觸碰一次(或者按照你在OSTimeDly()中配置的延遲指定)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16664

    瀏覽量

    347726
  • Silicon Labs
    +關(guān)注

    關(guān)注

    11

    文章

    315

    瀏覽量

    62364
  • MicriumOS
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    2337

原文標(biāo)題:【設(shè)計(jì)指南】在Flex Gecko上添加Micrium OS

文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電壓調(diào)節(jié)器IC堆疊電感的SMT指南

    電子發(fā)燒友網(wǎng)站提供《電壓調(diào)節(jié)器IC堆疊電感的SMT指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-26 14:50 ?0次下載
    電壓調(diào)節(jié)器IC<b class='flag-5'>上</b>堆疊電感的SMT<b class='flag-5'>指南</b>

    Temp-Flex混合型帶狀電纜產(chǎn)品特點(diǎn)和優(yōu)點(diǎn)-赫聯(lián)電子

    差異,導(dǎo)體間距可變,最大寬度為25.40毫米(1英寸)。   Temp-Flex混合型帶狀電纜可以應(yīng)用于醫(yī)療行業(yè),例如:內(nèi)窺鏡、超聲設(shè)備、植入式治療設(shè)備、止痛治療等。工業(yè)自動化中,機(jī)器人也會用到相關(guān)
    發(fā)表于 08-12 11:12

    定制電路板使用miniprog3無法連接cy8cmbr3116怎么解決?

    vcc 添加了 10k 拉電阻。我試過使用不同的 scl/sda 拉值(2k2、6k8 等)進(jìn)行連接,但仍然不行。 我已經(jīng)沒有辦法了,但我需要把它用于一個商業(yè)項(xiàng)目。誰能幫幫我?
    發(fā)表于 05-23 07:20

    Flex-Algo輕松掌握!搞懂必看!

    01為什么需要Flex-Algo傳統(tǒng)IGP(InteriorGatewayProtocol,內(nèi)部網(wǎng)關(guān)協(xié)議)基于鏈路的開銷值來計(jì)算到達(dá)目的地的最優(yōu)路徑。鏈路開銷值不能作為路徑優(yōu)劣的唯一標(biāo)準(zhǔn)時,傳統(tǒng)
    的頭像 發(fā)表于 05-16 08:04 ?264次閱讀
    <b class='flag-5'>Flex</b>-Algo輕松掌握!搞懂必看!

    HarmonyOS實(shí)戰(zhàn)開發(fā)-Flex布局性能提升使用指導(dǎo)

    Flex為采用彈性布局的容器。容器內(nèi)部的所有子元素,會自動參與彈性布局。子元素默認(rèn)沿主軸排列,子元素主軸方向的尺寸稱為主軸尺寸。 單行布局場景下,容器里子組件的主軸尺寸長度總和可能存在不等于容器
    發(fā)表于 05-10 14:26

    Linux操作系統(tǒng)的射頻測試模式應(yīng)用指南

    電子發(fā)燒友網(wǎng)站提供《Linux操作系統(tǒng)的射頻測試模式應(yīng)用指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:39 ?0次下載
    Linux操作系統(tǒng)<b class='flag-5'>上</b>的射頻測試模式應(yīng)用<b class='flag-5'>指南</b>

    MCU使用GPIO來驅(qū)動晶體管上的基極,需要在電路中添加一個電阻器嗎?

    MCU 使用 GPIO 來驅(qū)動晶體管上的基極。每個元件的數(shù)據(jù)表列出了最大500mA,我需要在電路中添加一個電阻器嗎?
    發(fā)表于 01-22 07:01

    KE17Z512的閃存交換功能應(yīng)用指南

    電子發(fā)燒友網(wǎng)站提供《KE17Z512的閃存交換功能應(yīng)用指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 09:24 ?0次下載
    KE17Z512<b class='flag-5'>上</b>的閃存交換功能應(yīng)用<b class='flag-5'>指南</b>

    labview怎么添加設(shè)備驅(qū)動

    添加設(shè)備驅(qū)動是使用LabVIEW進(jìn)行設(shè)備控制和數(shù)據(jù)采集的關(guān)鍵步驟之一。本文將向您介紹如何在LabVIEW中添加設(shè)備驅(qū)動程序。 開始之前,您需要明確了解所要添加的設(shè)備的相關(guān)信息,例如設(shè)
    的頭像 發(fā)表于 01-02 16:10 ?1809次閱讀

    PCB板添加散熱孔的方法和要點(diǎn)

    PCB板添加散熱孔的方法和要點(diǎn) 散熱孔PCB板上起著非常重要的作用,它可以有效地提高電子器件的散熱能力,確保電子設(shè)備的正常工作。下面,我將詳細(xì)介紹
    的頭像 發(fā)表于 12-08 11:42 ?2075次閱讀

    如何用不同的方法信號中添加或累積誤差

    電子發(fā)燒友網(wǎng)站提供《如何用不同的方法信號中添加或累積誤差.pdf》資料免費(fèi)下載
    發(fā)表于 11-27 11:54 ?0次下載
    如何用不同的方法<b class='flag-5'>在</b>信號中<b class='flag-5'>添加</b>或累積誤差

    oracle數(shù)據(jù)庫添加字段語句

    Oracle數(shù)據(jù)庫添加字段語句是已有表中添加新的列,以擴(kuò)展表的結(jié)構(gòu)和功能。添加字段語句的語法有多種,可以根據(jù)實(shí)際需求選擇不同的語法。下面將詳細(xì)介紹Oracle數(shù)據(jù)庫
    的頭像 發(fā)表于 11-21 11:37 ?5865次閱讀

    i.MX RT1052的FLex通過FLI_ SPI(4-wire) 接口訪問FPGA時,如何取消中間的閑置部分?

    這個閑置段設(shè)為固定長度 ? 同樣,當(dāng)我使用 IMX 8 時,我使用Flex_ SPI 讀和寫訪問 FPGA時,所釋放的時鐘是連續(xù)的,且時鐘長度與所配置的長度一致。這兩個芯片在 Flex_ SPI 中。 使用 SPI 時,我需要
    發(fā)表于 11-13 06:04

    怎么keil中添加斷點(diǎn)?

    怎么keil中添加斷點(diǎn)
    發(fā)表于 10-20 06:22

    Rigid-Flex的多層疊該如何設(shè)計(jì)呢?

    Rigid-Flex剛?cè)犭娐返娜筇卣魇?Multi-bending(多彎曲),Multi-stackup(多層疊),Multi-zone(多區(qū)域)。
    的頭像 發(fā)表于 10-07 17:17 ?1305次閱讀
    Rigid-<b class='flag-5'>Flex</b>的多層疊該如何設(shè)計(jì)呢?