Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt

Use this file to discover all available pages before exploring further.

引导加载(Bootloading)是嵌入式设备固件更新的基础机制,允许在不依赖调试接口的情况下对设备上的应用程序固件映像进行更新。Silicon Labs 的 Gecko Bootloader 是专为 EFR32 SoC 和 NCP 设计的统一引导加载解决方案,支持安全启动、OTA(Over-The-Air)固件更新以及多种存储后端,是 OpenThread 应用量产部署的关键组件。

引导加载基础

Gecko Bootloader 支持两种主要的引导加载模式:

独立引导加载(Standalone Bootloader)

通过外部接口(UART、SPI 等)直接接收固件映像并写入 Flash,不需要应用程序参与。适用于工厂编程和有线更新场景。

应用引导加载(Application Bootloader)

由应用程序负责下载新固件映像并存储到下载槽(Download Slot),重启后由 Bootloader 完成映像验证和覆写。支持 OTA 场景,是 Thread 网络远程固件更新的标准方式。
在 OpenThread 应用中,OTA 固件更新通常基于 Thread 的 CoAP(Constrained Application Protocol)或其他机制将新固件传输到设备,再由 Gecko Bootloader 完成映像替换。

参考文档

Bootloader Fundamentals (UG103.06)

介绍用于 Silicon Labs 网络设备的引导加载基础知识,讨论 Gecko Bootloader 以及 legacy Ember 和 Bluetooth bootloader,并描述每种 bootloader 所使用的固件映像文件格式(GBL 格式)。

Gecko Bootloader User's Guide (UG489)

描述针对 EFR32 SoC 和 NCP 的 Gecko Bootloader 高级实现,提供如何在 GSDK 4.0 及更高版本中开始使用 Gecko Bootloader 与 Silicon Labs 无线协议栈的详细信息。

Series 2 Secure Boot with RTSL (AN1218)

包含在 Series 2 设备上配置和使用”基于硬件信任根(Root of Trust)的安全加载器(Secure Loader)“的 Secure Boot 详细信息,包括如何配置签名密钥。

Transitioning to Gecko Bootloader v2.x (AN1326)

描述 Gecko Bootloader v1.x 与 v2.x(GSDK 4.0 引入)之间的差异,包括如何在 Simplicity Studio 5 中配置新版 Gecko Bootloader。

Gecko Bootloader 配置步骤

1

选择 Bootloader 类型

在 Simplicity Studio 5 中新建 Bootloader 项目,根据硬件拓扑和更新方式选择 Standalone BootloaderApplication Bootloader(带内部/外部存储槽)。OpenThread OTA 场景推荐使用带内部存储槽的 Application Bootloader。
2

配置存储槽(Download Slot)

在 Gecko Bootloader 的组件配置中,指定下载槽的起始地址和大小。下载槽必须能容纳完整的应用程序 GBL 映像,且不能与应用程序代码区域或 NVM3 区域重叠。
3

配置安全选项(可选)

对于 Series 2 器件,可启用以下安全特性:
  • Secure Boot:要求固件映像携带有效的 ECDSA 签名,防止运行未授权代码
  • Rollback Protection:防止降级到旧版本固件
  • Encrypted GBL:对固件映像进行加密,保护知识产权
4

构建并烧录 Bootloader

构建 Bootloader 项目,生成 .s37 格式的 Bootloader 映像。使用 Simplicity Commander 或 flash programmer 将其烧录到设备的 Bootloader 区域(通常位于 Flash 起始地址)。
5

构建并烧录应用程序

构建 OpenThread 应用程序项目,将生成的应用程序映像(.s37 或打包为 .gbl)烧录至设备。注意应用程序的链接起始地址必须与 Bootloader 预留区域之后的地址对齐。

固件映像格式

GBL(Gecko Bootloader File Format)是 Gecko Bootloader 使用的固件映像容器格式,支持以下特性:
  • 版本信息和元数据嵌入
  • 可选的 ECDSA 签名(防篡改验证)
  • 可选的 AES-CCM 加密(保护固件内容)
  • 增量更新(Delta Update)支持
使用 Simplicity Commander 工具可以将裸 .bin.s37 文件打包为 .gbl 格式:
# 创建未签名的 GBL 文件
commander gbl create myapp.gbl --app myapp.s37

# 创建已签名的 GBL 文件(需要签名密钥)
commander gbl create myapp_signed.gbl --app myapp.s37 \
    --sign signing_key.pem

从 Gecko Bootloader v1.x 迁移到 v2.x

GSDK 4.0 引入了 Gecko Bootloader v2.x,与 v1.x 存在若干重要变化。AN1326 详细描述了两个版本之间的差异:
  • 组件化配置:v2.x 使用 Simplicity Studio 5 的组件系统进行配置,取代了 v1.x 的 AppBuilder 方式
  • 存储插件更新:内部/外部存储插件的配置接口发生变化,需重新设置存储槽参数
  • 安全特性增强:v2.x 更好地支持 Series 2 的 Secure Boot with RTSL 特性
  • API 兼容性:Bootloader 应用 API 保持向后兼容
如果您的 OpenThread 项目当前使用 GSDK 3.x 及更早版本,升级到 GSDK 4.0+ 时请务必参考 AN1326 完成 Bootloader 配置迁移,同时更新应用程序中对 Bootloader API 的调用方式。

Build docs developers (and LLMs) love