蓝牙AppLoader BootLoader升级指南

一 新旧Bootloader的区别

在Silicon Labs的Gecko SDK v4.0版本之前,AppLoader是放在Gecko BootLoader和应用程序App之间的一个独立的程序。

在Gecko SDK v4.1中,对于2系列的芯片(xG21,xG22,xG24等),AppLoader变成了Gecko BootLoader项目的一部分,并作为通信插件组件提供,而不是单独的应用程序。

这意味着:

因为AppLoader是BootLoader的一部分,不需要再单独刷新AppLoader。

AppLoader不能再自行升级。要升级AppLoader,必须升级Gecko BootLoader。

新的BootLoader比老的BootLoader大得多,而且它不适合老的BootLoader区域。

因此,应用程序App的起始地址和BootLoader升级映像的基址都必须更改。

 

二 新Bootloader的好处和缺点

将Apploader与Bootloader合并有以下好处:

1.每个蓝牙协议栈都支持通过蓝牙更新应用程序

2.由于代码重用和flash页面对齐需求而减少的代码大小将得到改善

3.蓝牙协议栈将遵循标准的开发流程(AppLoader步骤仅在蓝牙协议栈中使用,且仅在独立模式下使用)

4.合并将使客户能够修改Apploader(它现在是作为二进制blob交付的)。亚马逊等公司也提出了这一要求。

5.这将为一些客户所要求的小型蓝牙协议栈铺平道路。

它也有以下缺点:

1. 因为位置地址信息存储在阶段1引导加载程序中,所以该解决方案不适用于系列1设备(xG12,xG13等)。

2. 升级过程并不简单,需要多个步骤来确保设备的功能。

 

三 升级步骤

出于安全考虑,升级过程分为多个步骤:

 

 

 四 如何操作

第一步

1. 使用GSDK 4.1或更高版本创建一个新的Bootloader - SoC Internal Storage程序

 

 

 2. 更新“Platform→bootloader→Core→bootloader Core→Configure”中bootloader升级镜像的Base address,设置值为0x18000 (98304) 

 

 

 3. 安装Bluetooth→OTA→Bluetooth AppLoader migration utility

 

 

4. 点击“小锤子”按钮进行程序编译

5. 通过在apploader目录级别的菜单中打开命令行,并运行以下命令,生成迁移GBL文件

 

 

 

在CMD命令行中

Windows电脑输入:

create_apploader_migration_gbl.bat "../GNU ARM v10.2.1 - Default/bootloader-storage-internal-single-512k.s37" ./migration.gbl

苹果电脑输入:

./create_apploader_migration_gbl.sh "../GNU ARM v10.2.1 - Default/bootloader-storage-internal-single-1536k_fe_presentation.s37" ./migration.gbl

 

 

第二步:

1. 使用GSDK 4.1或更高版本创建一个新的Bootloader - SoC Bluetooth AppLoader OTA DFU项目

 

 2. 在Platform→Bootloader→Core→Bootloader Core→配置并将值设置为2

 

 

 

 

 

 

 

3. 点击“小锤子”按钮进行程序编译

4. 定位到在Binaries文件夹生成的bootloader-apploader.s37文件

5. 通过在s37文件右键打开命令行,并运行以下命令,生成bootloader-apploader GBL文件

Windows电脑使用:  

"commander" gbl create bootloader-apploader.gbl --bootloader bootloader-apploader.s37

苹果电脑使用:  

./"${PATH_SCMD}/commander" gbl create bootloader-apploader.gbl --bootloader bootloader-apploader.s37

 

 

 

 第三步:

1. 使用GSDK 4.1或更高版本创建一个新的Bluetooth - SoC Empty项目

2. 使用“小锤子”编译

3. 通过在./create_bl_files.sh文件菜单中打开命令行,并运行以下命令,生成应用程序的GBL文件

Windows电脑输入:

create_bl_files.bat

苹果电脑输入:

./ create_bl_files.sh

 

 

 

 

 

 

 

第四步:

将生成的3个GBL文件复制到您的智能手机上

步骤1→./apploader/migration.gbl

步骤2→./Binaries/bootloader-apploader.gbl

步骤3→./output_gbl/application.gbl

打开手机上的EFR Connect App,完成升级步骤:

1. 连接到您的WSTK开发板(确保之前的程序可以OTA升级)

2. 在下拉菜单中找到“OTA DFU”,选择“PARTIAL OTA”,上传migration.gbl

 

 

3. 断开连接后,使用EFR Connect,找到广告为OTA的设备,并再次连接

在下拉菜单中找到OTA DFU,选择FULL OTA,并使用application.gbl和bootloader-apploader.gbl文件升级到新的Bootloader(包含Apploader的Bootloader)

 

posted @ 2022-11-30 10:36  J-Dub  阅读(638)  评论(0编辑  收藏  举报