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()中配置的延迟指定)。
实验室紫外线照射箱详细构建
华为鸿蒙OS会不会步当年微软WP后尘
联想Z5新旗舰:存储4TB起步,超高屏占比全面屏加持
现代汽车因芯片短缺面临生产中断!
总结linux命令行的主要用法
在Flex Gecko上添加MicriumOS的设计指南
对企业网站基本建设的工作经验体会心得
HART-IP:从4-20mA迁移到Ethernet-APL
为何比特币和加密货币成为攻击的目标
华为高治国:NFV十年成绩斐然,共同开启下一个黄金时代
汉高下半年推出 UV 胶加低温热固化环氧胶的双胶水的的解决方案
科大讯飞回应“业绩不达预期”传闻:净利润同比增长50%以上
Tektronix推出SPG8000主同步与主参考时脉发生器
OPPOR17续航怎么样
TCL科技:Q4面板行业供给将根据需求调整 保障价格趋于平稳
UnitedSiC宣布推出适用大型反激式AC-DC的SiC JFET晶片
SMSC发表DARR83数字无线音频处理器
理想L9最新消息:6月21日发布,8月开始交付!
常用家用电器除污方法
MAX5965A, MAX5965B 单芯片4通道PSE控制