0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Flex Gecko上添加MicriumOS的设计指南

Silicon Labs 来源:互联网 作者:佚名 2018-07-10 09:12 次阅读

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中显示的示例将其添加到您的工作区中:

将示例加载到工作区后,您可能会收到如图4所示的通知。只需单击“OK”即可。

图4 - 自动升级通知

然后您将看到simple_rail_without_hal.isc打开,您可以在其中配置RAIL。在我的情况下,我将所有内容都保留在默认值中,只需单击“Generate”,如图5所示。

图5 - RAIL项目配置

此时,您现在应该设置一个基本的Flex Gecko示例来构建和运行。但是,我发现默认的项目设置将编译器优化设置为“Optimizefor size (-Os)”,这最终会使项目调试变得困难。因此,我将优化切换为“None(-O0)”。

图6 - 编译器优化

Micrium OS添加到工作区

现在您已经构建并运行了一个基本的Flex Gecko示例,我们继续并开始将MicriumOS源文件添加到工作区中。首先,找到MicriumOS目录,它应该位于:

C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.3\platform\micrium_os

现在在Simplicity Studio中将“micrium_os”文件夹拖放到您的项目(simple_rail_without_hal)中。在执行此操作时,请确保在单击“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作为您的项目的一部分,让我们继续对默认的MicriumOS配置进行一些小的调整。

修改main.c

我们将修改由“RAIL:SimpleRAIL without HAL”示例生成的默认main.c。 Micrium OS需要在main.c中包含以下路径,所以请继续并按如下所示添加它们:

#include

#include

#include

#include

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

我们将修改main.c来初始化MicriumOS并创建一个启动任务。为此,您需要指定任务堆栈大小和优先级。我们通常通过将它们定义为常量并将它们传递给OSTaskCreate()来实现这一点。启动任务还需要自己的堆栈和任务控制块(OS_TCB)以及其函数原型。

以下是StartTask函数的主体,其中内核tick被初始化,以及Common模块。请注意,该功能在结束时包含一个无限循环,延迟时间为1秒。这样做是为了让CPU时间用于其他正在或将最终在系统上运行的任务。

最后,让我们修改main()来初始化CPU,将中断处理程序重新分配为内核感知,初始化内核,创建启动任务并启动操作系统

您现在被设置为构建并运行该项目。你可以在while循环里面的StartTask中放置一个断点,注意你会每秒钟触碰一次(或者按照你在OSTimeDly()中配置的延迟指定)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17316

    浏览量

    352520
  • Silicon Labs
    +关注

    关注

    11

    文章

    330

    浏览量

    62524
  • MicriumOS
    +关注

    关注

    0

    文章

    1

    浏览量

    2363

原文标题:【设计指南】在Flex Gecko上添加Micrium OS

文章出处:【微信号:SiliconLabs,微信公众号:Silicon Labs】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英飞凌与Flex联合展示软件定义汽车区域控制器平台

    近日举办的国际消费电子展(CES 2025),全球功率系统和物联网领域的半导体领军企业英飞凌科技股份公司,与多元化全球制造商Flex携手亮相。Flex不仅是英飞凌的重要合作伙伴,更
    的头像 发表于 01-23 13:38 93次阅读

    英飞凌携手Flex展示用于软件定义汽车的区域控制器设计平台

      【 2025 年 1 月 17 日 , 德国慕尼黑讯】 2025年国际消费电子展(CES 2025)期间,全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX
    发表于 01-17 14:35 72次阅读
    英飞凌携手<b class='flag-5'>Flex</b>展示用于软件定义汽车的区域控制器设计平台

    L-edit画图添加编号问题

    需要在器件添加两组不同的编号,逐个累计,数量大概有10万个,有没有比较好的方法,谢谢!
    发表于 12-24 17:03

    ADI收购Flex Logix,强化数字产品组合

    近日,全球领先的半导体公司ADI(Analog Devices, Inc.)宣布完成了对美国创新企业Flex Logix的收购。Flex Logix是一家专注于可重构计算技术的公司,为半导体和系统
    的头像 发表于 11-12 14:17 456次阅读

    宁德时代TENER Flex全球首发,引领灵活储能新时代

    近日,全球瞩目的2024年英国Solar & Storage Live (SSL)展会上,宁德时代正式推出了其最新储能产品——TENER Flex储能电柜。这一创新产品的发布,标志着宁德时代储能领域再次迈出了坚实的一步,为全
    的头像 发表于 10-08 15:07 1048次阅读

    电压调节器IC堆叠电感的SMT指南

    电子发烧友网站提供《电压调节器IC堆叠电感的SMT指南.pdf》资料免费下载
    发表于 08-26 14:50 0次下载
    电压调节器IC<b class='flag-5'>上</b>堆叠电感的SMT<b class='flag-5'>指南</b>

    Temp-Flex混合型带状电缆产品特点和优点-赫联电子

    差异,导体间距可变,最大宽度为25.40毫米(1英寸)。   Temp-Flex混合型带状电缆可以应用于医疗行业,例如:内窥镜、超声设备、植入式治疗设备、止痛治疗等。工业自动化中,机器人也会用到相关
    发表于 08-12 11:12

    abb机器人系统如何添加选项

    ABB机器人系统是一种广泛应用于工业生产领域的自动化设备。实际应用中,用户可能需要对机器人系统进行一些配置和设置,以满足特定的生产需求。本文将详细介绍如何在ABB机器人系统中添加选项,包括添加
    的头像 发表于 06-17 09:43 2571次阅读

    TSMaster 的 CAN UDS 诊断操作指南

    以太网的DoIP的诊断功能,TSMaster的CANUDS诊断操作指南)篇,主要是针对UDS诊断模块的创建、CANUDS诊断传输层配置和TSMaster基础诊断
    的头像 发表于 06-08 08:21 2733次阅读
    TSMaster 的 CAN UDS 诊断操作<b class='flag-5'>指南</b>(<b class='flag-5'>上</b>)

    Flex Power Modules上海嘉定区(JID)工厂荣获RBA“首选工厂”证书

    日前,Flex Power Modules上海嘉定区(JID)工厂荣获由责任商业联盟(RBA)颁发的“首选工厂”证书,标志着上海工厂供应链管理、劳工实践、健康与安全、环境责任以及道德准则等方面达到最高标准,收获国际权威认可。
    的头像 发表于 05-28 18:09 912次阅读
    <b class='flag-5'>Flex</b> Power Modules上海嘉定区(JID)工厂荣获RBA“首选工厂”证书

    定制电路板使用miniprog3无法连接cy8cmbr3116怎么解决?

    vcc 添加了 10k 拉电阻。我试过使用不同的 scl/sda 拉值(2k2、6k8 等)进行连接,但仍然不行。 我已经没有办法了,但我需要把它用于一个商业项目。谁能帮帮我?
    发表于 05-23 07:20

    Flex Power Modules庆祝上海嘉定区工厂荣获RBA认证

    Flex Power Modules宣布,其上海嘉定区(JID)工厂已荣获责任商业联盟(RBA)颁发的“首选工厂”证书。
    的头像 发表于 05-16 17:26 497次阅读
    <b class='flag-5'>Flex</b> Power Modules庆祝上海嘉定区工厂荣获RBA认证

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

    01为什么需要Flex-Algo传统IGP(InteriorGatewayProtocol,内部网关协议)基于链路的开销值来计算到达目的地的最优路径。链路开销值不能作为路径优劣的唯一标准时,传统
    的头像 发表于 05-16 08:04 264次阅读
    <b class='flag-5'>Flex</b>-Algo轻松掌握!搞懂必看!

    HarmonyOS实战开发-Flex布局性能提升使用指导

    Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素主轴方向的尺寸称为主轴尺寸。 单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器
    发表于 05-10 14:26

    Linux操作系统的射频测试模式应用指南

    电子发烧友网站提供《Linux操作系统的射频测试模式应用指南.pdf》资料免费下载
    发表于 02-19 09:39 0次下载
    Linux操作系统<b class='flag-5'>上</b>的射频测试模式应用<b class='flag-5'>指南</b>