安信可 BL602 平台模组 OTA 升级教程

概述

本文以安信可 Ai-WB2-12F 为例介绍安信可模组从生成 OTA 固件到通过 WiFi 升级固件的全过程。

固件增加 OTA 功能

要开启 OTA,固件必须要包含以下功能:

  • 蓝牙或命令行配网功能
  • OTA 命令行组件(ota_http_cmd)

我们以demo_ota 项目为例。首先,复制原厂 SDK 的customer_app/system/ota/demo_ota 到安信可 WB2 模组 SDK 的application 目录下,做如下修改:

  1. applications/demo_ota/Makefile 对应行的内容修改如下:
BL60X_SDK_PATH ?= $(BL60X_SDK_PATH_GUESS)/../../../..
BL60X_SDK_PATH ?= $(BL60X_SDK_PATH_GUESS)/../../..
  1. applications/demo_ota/proj_config.mk 中新增:
CONFIG_LINK_ROM=1

对于已经做好配网灯功能的现有项目,我们只需要复制demo_ota项目中的bl_http_ota.cbl_http_ota.h到现有项目,编译后即可增加 OTA 命令行功能,也可以直接调用其中的 ota_http_cmd() 函数模拟命令行传参调用 OTA 命令行组件进行升级。

生成 OTA 固件

  1. 构建项目,生成烧录固件:
make -j
  1. 生成 OTA 固件有两种方法:
  • 直接使用 tools/flash_tool/bflb_iot_tool 进行烧录,烧录过程会自动在 tools/flash_tool/chips/bl602/ota 目录下生成 6 种 OTA 固件,分别是:
    • FW_OTA.bin:在编译生成的 bin 的头部追加 4K bytes 的 Boot2 Head
    • FW_OTA.bin.hash:在 FW_OTA.bin 尾部追加对其计算的 32 bytes的 Hash 值(sha256)
    • FW_OTA.bin.ota:在 FW_OTA.bin 的头部追加 512 bytes 的 OTA Head
    • FW_OTA.bin.xz:对 FW_OTA.bin 进行 xz 压缩
    • FW_OTA.bin.xz.hash:在 FW_OTA.bin.xz 尾部追加对其计算的 32 bytes 的 Hash 值(sha256)
    • FW_OTA.bin.xz.ota:在 FW_OTA.bin.xz 头部追加 512 bytes 的 OTA Head
  • 使用 tools/flash_tool/bflb_iot_tool ,在 make 结束后生成的烧录命令的基础上加上 --build 命令手动生成固件。

搭建 HTTP 服务器

OTA 升级时,固件会从 HTTP 服务器下载 OTA 固件进行升级,因此本机需要先搭建好 HTTP 服务器供模组下载固件。

搭建 HTTP 服务器的过程非常简单,只需要安装好 Python 3,然后在 tools/flash_tool/chips/bl602/ota 下执行以下命令即可:

python3 -m http.server 9090

Python HTTP 服务器

进行 OTA 升级

烧录好固件:

make flash

用 USB 串口等连接模组,使用 Xshell 或者 Putty 打开串口,波特率 115200,敲回车即可进入模组的命令行,首先启用 WiFi 功能:

stack_wifi

然后使用命令行连接 WiFi:

wifi_sta_connect TEST 12345678

连接 WiFi 成功

如图,获取到 IP 地址后,我们便可以执行升级操作。执行命令:

ota_http_cmd 192.168.137.1

OTA 升级中

如图,模组从 HTTP 服务器下载固件并校验,校验成功后开始刷写 Flash。

OTA 升级完成

刷写完成后自动重启进入新固件。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值