蓝牙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)
完