芯科的EFR32单片机固件其实分为两部分,一部分是BootLoader,另一部分是Application。其中Application是我们用户自己编写的代码存放,而BootLoader则用于:
(1)内部模块的最初初始配置
(2)根据分区表和OTA_Data选择要引导的应用程序分区
(4)引导加载程序位于Flash中的地址0x1000
3.1 BootLoader工程创建编译
我们以EFR32MG21A020F768IM32为例来进行BootLoader的开发。
3.1.1 创建工程
1、依此点击File->New->Silicon Labs Project Wizard创建模板工程,如下图所示。
2、选择芯片类型,SDK版本和交叉编译器,点击Next,如下图所示。
3、选择BootLoader项目类型,点击Next,如下图所示。
4、选择工程名称和存放路径,点击Finish即可完成工程的创建。
3.1.2 工程编译
由于BootLoader项目不需要修改即可完成编译,所以我们点击如下图所示的按钮编译代码即可。
编译完成后结果如下图所示。
至此BootLoader固件编译完成。
3.2 Application工程创建编译
3.2.1 创建工程
1、依此点击File->New->Silicon Labs Project Wizard创建模板工程,如下图所示。
2、选择芯片类型,SDK版本和交叉编译器,点击Next,如下图所示。
3、随便选择一个项目类型,比如ZigbeeMinimal项目,点击Next,如下图所示。
4、选择工程名称和存放路径,点击Finish即可完成工程的创建。
3.2.2 工程编译
1、进入VCOM控件配置页面
2、配置USART0作为VCOM,并设置取消流控,映射TXD和RXD到PD0和PD1。
3、配置LED作为指示灯
4、配置PB0作为LED输出
由于我们硬件上LED是低电平点亮,所以选择Active_low,同时端口选择PB0。通过上面配置两个资源,我们就实现了Zigbee最小系统的修改,现在直接点击如下图所示按钮进行编译。
编译完成后结果如下图所示。
至此Application固件编译完成。
3.3 固件下载
在之前我们编译好了两个固件,现在我们利用烧录软件将这两个固件分别烧写进EFR32中。由于EFR32属于Cortex-M4内核,所以可以用J-Link进行程序烧录,提到J-Link,我们知道它的官方也提供了一个烧写工具,叫做J-Flash,但是这里我们使用芯科官方提供的Simplicity Commander工具进行固件烧录。
1、点击如下图所示图标打开Simplicity Commander工具
2、选择Simplicity Commander工具
3、选择当前接入的J-Link,单击连接
4、我们切换到Device Info页面,这个页面可以读取出当前MCU的内存情况,如果出现如下图所示的信息说明J-Link连接正常,此时我们就可以烧写固件了。
5、我们切换到Flash页面,手动选择固件的路径,点击Flash按钮就可以实现固件的烧写,但是建议烧写BootLoader之前先点击Erase chip按钮进行全片擦除。
依次将两个固件烧写进EFR32中,然后上电,接入USB转TTL工具,波特率设置为115200,就可以看到当前启动打印的信息了,如下图所示。
-
单片机
+关注
关注
6032文章
44513浏览量
632762 -
bootloader
+关注
关注
2文章
234浏览量
45536 -
EFR32
+关注
关注
1文章
10浏览量
5824
发布评论请先 登录
相关推荐
评论