一、引入
启动运行 Simplicity Studio 之后,在软件界面最上面的菜单栏中依次找到并点击 File -> New -> Silion Labs Project Wizard,在弹窗中清除掉原本所有默认的选项,然后从上到下依次配置好如下三项即可:
- Target Device
- SDK
- IDE / Toolchain
如下图所示:
(注:Target Device 的位置,应该按自己实际所用芯片进行搜索选择。)
点击上图中的 NEXT,进入下图所示界面:
选中上图中 Technology Type 下的 Bootloader 之后,界面变成如下图所示:
从上图中就可以看到,Silicon Labs 的 Gecko SDK v4.0.2.0 中,总共提供了 15 种 BootLoader 供开发者选择(拉动上图中最右侧的滚动条,可以看到图中为显示的其他 BootLoader),但是我们实际开发过程中常用的 BootLoader 并不是很多,一般就是如下 3 类:
- Internal Storage Bootloader
- SPI Flash Storage Bootloader
- UART XMODEM Bootloader
二、Internal Storage Bootloader
Internal Storage Bootloader 应该是所有版本的 BootLoader 中最普通的了,也是 EFR32 最常用的 BootLoader 之一。顾名思义,烧录了这个版本的 BootLoader 之后,一般情况下后续所有的 Application、OTA Image 等等,都是存储在芯片内部的 Flash里面的。
三、SPI Flash Storage Bootloader
SPI Flash Storage Bootloader 一般是在芯片内部 Flash 不够用、需要扩展 Flash 的情况下使用的。烧录这个版本的 BootLoader,可以支持扩展一些 Silicon Labs 官方指定型号的 SPI 接口的 Flash。具体支持哪些型号的 Flash,可以参考官方文档《UG489: Silicon Labs Gecko Bootloader User’s Guide for GSDK 4.0 and Higher》中的支持型号列表,如下图所示:
四、UART XMODEM Bootloader
UART XMODEM Bootloader 和其他版本相比,除了都有程序启动引导功能,最大的特点在于一旦烧录了这个版本的 BootLoader,后面的 Application 固件,就可以通过串口进行下载。其他版本的 BootLoader 在下载之后,后续的 Application 固件的下载还是必须使用 J-Link 下载器才可以实现。串口固件升级协议就是按标准的 Xmodem-CRC16 协议,其信息包格式如下图所示:
Xmodem-CRC16 协议的传输流程如下图所示:
(注:如果还有遇到问题,建议在文初或文末提及的技术交流QQ群中提问交流。)