前言¶
概述
本文主要介绍WS63 Flashboot中升级相关的API接口,具体参考《WS63V100 FOTA开发指南》中的接口介绍。
产品版本
与本文档相对应的产品版本如下。
产品名称 |
产品版本 |
|---|---|
WS63 |
V100 |
读者对象
本文档主要适用于以下工程师:
技术支持工程师
软件开发工程师
符号约定
在本文中可能出现下列标志,它们所代表的含义如下。
符号 |
说明 |
|---|---|
|
表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。 |
|
表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。 |
|
表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。 |
|
用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。 “须知”不涉及人身伤害。 |
|
对正文中重点信息的补充说明。 “说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。 |
修改记录
文档版本 |
发布日期 |
修改说明 |
|---|---|---|
01 |
2024-04-10 |
第一次正式版本发布。 |
00B01 |
2024-02-22 |
第一次临时版本发布。 |
接口介绍¶
表 1 升级接口(升级包存储部分)描述
接口名称 |
描述 |
|---|---|
uapi_upg_init |
升级模块初始化。 |
uapi_upg_prepare |
保存升级包到本地存储器前的准备工作。 |
uapi_upg_write_package_async/uapi_upg_write_package_sync |
将升级包数据写入本地存储器。(异步方式/同步方式) |
uapi_upg_read_package |
从本地存储器读取升级包数据。 |
uapi_upg_request_upgrade |
申请开始进行本地升级,所有升级包数据全部保存完成后,调用此接口。 |
uapi_upg_get_storage_size |
获取可存放升级包的空间大小。 |
表 2 升级接口(本地升级部分)描述
接口名称 |
描述 |
|---|---|
uapi_upg_init |
升级模块初始化。 |
uapi_upg_register_progress_callback |
注册升级进度通知回调函数,注册后,在本地升级过程中会调用回调函数通知当前进度。 |
uapi_upg_start |
开始本地升级。 |
uapi_upg_get_result |
获取升级结果。 |
uapi_upg_verify_file_head |
校验升级包头结构。 |
uapi_upg_verify_file_image |
校验升级包中的升级镜像。 |
uapi_upg_verify_file |
校验整个升级包。 |
uapi_upg_register_user_defined_verify_func |
注册用户自定义字段的校验函数。 升级包结构中预留了48Byte用于用户自定义数据的校验。注册自定义校验函数后,被注册的函数会在调用uapi_upg_verify_file_head和uapi_upg_verify_file函数时被调用到。如果自定义数据校验失败uapi_upg_verify_file_head和uapi_upg_verify_file会返回失败。 |
表 3 升级接口入参及返回值描述
接口原型 |
参数及返回值说明 |
|---|---|
errcode_t uapi_upg_init(const upg_func_t *func_list) |
|
errcode_t uapi_upg_start(void) |
|
errcode_t uapi_upg_register_progress_callback(uapi_upg_progress_cb func) |
|
errcode_t uapi_upg_get_result(upg_result_t *result, uint32_t *last_image_index) |
|
errcode_t uapi_upg_prepare(upg_prepare_info_t *prepare_info) |
|
errcode_t uapi_upg_write_package_async(uint32_t offset, const uint8_t *buff, uint16_t len, uapi_upg_write_done_cb callback) |
|
errcode_t uapi_upg_write_package_sync(uint32_t offset, const uint8_t *buff, uint16_t len) |
|
errcode_t uapi_upg_read_package(uint32_t offset, uint8_t *buff, uint32_t len) |
|
uint32_t uapi_upg_get_storage_size(void) |
|
errcode_t uapi_upg_request_upgrade(bool reset) |
|
errcode_t uapi_upg_verify_file_head(const upg_package_header_t *pkg_header) |
|
errcode_t uapi_upg_verify_file_image(const upg_image_header_t *img_header, const uint8_t *hash, uint32_t hash_len, bool verify_old) |
|
errcode_t uapi_upg_verify_file(const upg_package_header_t *pkg_header) |
|
void uapi_upg_register_user_defined_verify_func(uapi_upg_user_defined_check func, uintptr_t param) |
|




