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

    文章

    16009

    浏览量

    343524
  • Silicon Labs
    +关注

    关注

    11

    文章

    306

    浏览量

    62268
  • MicriumOS
    +关注

    关注

    0

    文章

    1

    浏览量

    2320

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

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

收藏 人收藏

    评论

    相关推荐

    红板科技荣获Flex伟创力供应商“可持续发展奖”

    红板科技官微4月23日消息,近日,该公司荣获了Flex(伟创力)为优秀供应商颁发的重量级奖项“Sustainability Award”(可持续发展奖)。
    的头像 发表于 04-24 14:05 154次阅读

    MCU使用GPIO来驱动晶体管上的基极,需要在电路中添加一个电阻器吗?

    MCU 使用 GPIO 来驱动晶体管上的基极。每个元件的数据表列出了最大500mA,我需要在电路中添加一个电阻器吗?
    发表于 01-22 07:01

    怎么keil中添加断点?

    怎么keil中添加断点
    发表于 10-20 06:22

    Rigid-Flex的多层叠该如何设计呢?

    Rigid-Flex刚柔电路的三大特征是 Multi-bending(多弯曲),Multi-stackup(多层叠),Multi-zone(多区域)。
    的头像 发表于 10-07 17:17 971次阅读
    Rigid-<b class='flag-5'>Flex</b>的多层叠该如何设计呢?

    “model_transform.py”添加参数“--resize_dims 640,640”是否表示tpu会自动resize的?

    “model_transform.py”添加参数“--resize_dims 640,640”是否表示tpu会自动resize的?我看到yolov5的sample代码里都用opencv做了
    发表于 09-18 07:56

    Flex Bus物理层的CXL帧和数据概述

    在传输端,Flex Bus物理层准备从PCIe链路层或CXL ARB/MUX接收的数据,以便通过Flex Bus链路进行传输。
    的头像 发表于 09-11 14:34 1816次阅读
    <b class='flag-5'>Flex</b> Bus物理层的CXL帧和数据概述

    RealView LT-XC5VLX330用户指南

    该系统中,处理器核心映像(例如SSM)被直接加载到FPGA中。 有关向IM-LT1添加逻辑瓦片的信息,请参阅《集成商IM-LT1接口模块用户指南》(DUI 0187)。 在此配置中,电源和JTAG连接由IM-LT1提供。
    发表于 08-12 07:59

    使用Arm NN API指南Android实现神经风格的转移

    指南中,我们将向您展示如何使用ARM NN API构建一个样式转换Android应用程序。 要阅读本指南,您需要以下资源: ·运行Android 9或更高版本的Android设备·Android Studio,包括v24或更
    发表于 08-11 06:18

    Docker入门指南

    指南介绍了如何使用Docker简化嵌入式设备和服务器的多体系结构应用程序部署。 快速扩展软件环境可能是一项既困难又耗时的任务。指南中,我们将向您展示Docker如何抽象操作系统
    发表于 08-02 06:09

    适用于工业物联网-EFR32FG25 Flex Gecko无线SoC

    贸泽电子即日起开售 Silicon Labs (亦称“芯科科技”)的 EFR32FG25 Flex Gecko 无线 SoC 。 EFR32FG25 SoC 采用 32 位 Arm
    的头像 发表于 06-26 15:40 303次阅读
    适用于工业物联网-EFR32FG25 <b class='flag-5'>Flex</b> <b class='flag-5'>Gecko</b>无线SoC

    EFR32FG25 Flex Gecko无线SoC

    。以下是本周新品情报,请及时查收: 适用于工业物联网 Silicon Labs EFR32FG25 Flex Gecko无线SoC 贸泽电子即日起开售Silicon Labs 的 EFR32FG25
    的头像 发表于 06-21 08:35 315次阅读
    EFR32FG25 <b class='flag-5'>Flex</b> <b class='flag-5'>Gecko</b>无线SoC

    Ubuntu安装了Arduino IDE,无法为其添加ESP8266功能怎么解决?

    我对这一切都很陌生。我已经 Ubuntu 安装了 Arduino IDE,但现在无法为其添加 ESP8266 功能。我没有申请将“http://arduino.esp8266.com
    发表于 06-12 06:48

    贸泽开售Silicon Labs EFR32FG25 Flex Gecko无线SoC 助力提升智能电表和照明系统性能

    的EFR32FG25 Flex Gecko无线SoC。EFR32FG25 SoC采用32位Arm Cortex-M33内核,最大工作频率为97.5MHz,支持智能电表、街道照明、配电自动化和工业应用的远程连接
    发表于 05-18 18:23 471次阅读
    贸泽开售Silicon Labs EFR32FG25 <b class='flag-5'>Flex</b> <b class='flag-5'>Gecko</b>无线SoC 助力提升智能电表和照明系统性能

    一文解读刚柔电路Rigid-Flex三大特征

    刚柔电路 Rigid-Flex Printed Circuit Board可以简称为Rigid-Flex,是单一电路板上既包含刚性基板也包含柔性电路的一种电路结构形式。
    的头像 发表于 05-05 18:21 1654次阅读
    一文解读刚柔电路Rigid-<b class='flag-5'>Flex</b>三大特征

    LS1043A:Yocto构建系统,在哪里可以找到添加新机器类型的指南

    distro-setup-env -m ls1043ardb),但对于我们的定制平台,我们想添加新的机器类型。我们在哪里可以找到添加新机器类型的指南
    发表于 04-27 07:25