OTA使用说明¶
1. 概述¶
OTA(Over-The-Air,空中升级)指通过串口升级工具或小程序等方式,对设备端已烧录的固件进行在线更新。CI23LC 系列 SDK 通过 user_config.h 中的宏开关控制 OTA 功能是否使能,并使用 SDK tools 目录下的打包升级工具 PACK_UPDATE_TOOL.exe 完成固件的打包与升级。
备注
默认发布的示例工程 projects/offline_asr_sample 中 OTA 功能处于关闭状态,仅在需要将设备固件升级能力开放给终端或客户时再开启对应宏。
2. OTA功能开关¶
OTA 功能的开关位于工程配置文件 projects/offline_asr_sample/src/user_config.h:
#define CI_OTA_ENABLE 0 //开启OTA功能,需修改打包升级工具版本,在firmware\config.ini文件中设置成firmware_version=FW_V4
#define OTA_BACKUP_EN 0 //OTA备份标记,与OTA代码保持一致,若有分区备份,则此值设为1,否则为0
- CI_OTA_ENABLE:OTA 总开关。置
1开启 OTA 功能;置0关闭(默认)。 - OTA_BACKUP_EN:OTA 备份标记。与 OTA 代码保持一致,若固件存在备份分区则设为
1,否则为0(默认)。
备注
工程 project_file/makefile 会从 user_config.h 中提取 CI_OTA_ENABLE 与 OTA_BACKUP_EN 的值(对应变量 CI_OTA_EN_VAL、CI_BACK_EN_VAL),据此设置代码在 flash 中的链接基址 TEXT_IN_FLASH_BASE(如未开启 OTA 为 0x50004010,开启 OTA 后随是否备份分区变为 0x50012010/0x50013010)。
3. OTA分区与固件¶
开启 OTA 后,工程中需要包含 OTA 引导/升级代码分区,示例工程已提供:
projects/offline_asr_sample/firmware/ota_code/ota_code_23242_log0.bin
当 CI_OTA_ENABLE=1 时,还需要在打包升级工具的配置文件 tools/config.ini 中设置固件版本,例如:
firmware_version=FW_V4
备注
tools/config.ini 位于 SDK 根目录的 tools 目录下,由打包升级工具(PACK_UPDATE_TOOL)在首次运行时生成并维护;FW_V4 对应自选 Bootloader 和 Code2 的 OTA 方案。具体可配置项以打包升级工具界面为准。
4. 打包升级工具¶
SDK 提供图形化打包升级工具 PACK_UPDATE_TOOL.exe,位于 SDK 根目录的 tools 目录下:
tools/PACK_UPDATE_TOOL.exe
该工具用于:
- 将
user_code、asr、dnn、voice、user_file等分区文件打包生成固件; - 通过 USB 串口设备对模块板进行固件升级;
- 在开启 OTA 时,按
tools/config.ini中的firmware_version配置生成对应版本固件。
工具详细使用方法参见☞串口升级工具使用说明。
5. 升级流程概述¶
- 在
user_config.h中将CI_OTA_ENABLE置1(如需分区备份,将OTA_BACKUP_EN置1); - 在
firmware\config.ini中设置firmware_version(如FW_V4); - 编译工程,生成各分区 bin 文件;
- 使用
tools/PACK_UPDATE_TOOL.exe打包生成固件; - 通过串口升级工具或小程序,将固件烧录/升级到设备端。
备注
上述流程中与打包版本、分区、鉴权相关的细节,以打包升级工具(PACK_UPDATE_TOOL)实际界面与工程配置为准;如与本文档存在差异,以工具界面说明为准。