182***560
1.使用SDK版本 2.1.0,环境:KEIL_5,烧录工具 GProgrammer,GRttoolbox V2.21;
2. 官方SDK中 bootloader 和 ble_app_template_freertos
3.升级方式:后台双区升级;
4.配置改写:ble_app_template_freertos 中 custom_config.h BANK0和BANK1 运行固件一致;

BANK1 拷贝地址

Flash Layout:要注意

bootloader 配置文件修改:bootloader_config.h 选择地址校准和启动,APP_FW_COMMENTS:我没有研究明白,有明白的可以分享。
未展示位置,配置为0;
如果把 BOOTLOADER_DFU_BLE_ENABLE 设置为1 可以获得最小bootloader 但是,跳转固件会出现故障;
尝试官方推荐的方式修改,暂时没有修复;
当前如下配置,bootloader固件大小 88KB(满足4KB 扇区对齐)

4.普通模式与快速模式升级:
1)完成上述修改之后,画重点:必须使用官方GProgrammer烧录工具烧录;
2)分别烧录 Bootloader 和 ble_app_template_freertos(简称 app) 编译固件;
3)画重点:从 Bootloader 启动,观察是否能正常跳转到 app
4)改写 ble_app_template_freertos ,蓝牙名称;作为ota固件。
使用 GProgrammer 生成带 fw_bin 文件。
5)使用 GRttoolbox 进行升级;普通模式升级,取消快速模式勾选。
APP版本:
模式切换:
应该是 0x0108E000
拷贝地址:在双区升级模式下 等于BANK1 起始地址;
选择OTA固件,点击升级,缓慢读条,直到成功:扫描新设备观察蓝牙名称是否变更确定ota固件成功运行。
6)
快速模式修改点:

对SDK中 dfu_port.c

GRttoolbox 升级进度条走完最后还是报

将main函数中,按下图修改后 升级成功。(原理我没有搞懂🤷♀️)

打开微信,使用“扫一扫”即可关注
登录后可回答问题,请 登录 或 注册