WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
Update

结构体

struct  upg_key_area_data
 升级key区域数据类型。 更多...
 
struct  upg_fota_info_data
 升级fota信息数据类型。 更多...
 
struct  upg_image_hash_node
 升级镜像哈希节点类型。 更多...
 
struct  upg_package_header
 升级包头类型 更多...
 
struct  upg_image_header
 升级包镜像头类型 更多...
 
struct  upg_func
 可选函数结构。 更多...
 
struct  upg_prepare_info
 升级准备信息结构。 更多...
 

宏定义

#define SHA_256_LENGTH   32
 哈希长度。
 
#define DIE_ID_LEN   16
 芯片ID长度。
 
#define PROTECT_KEY_LEN   16
 加密秘钥长度。
 
#define IV_LEN   16
 IV 长度。
 

类型定义

typedef enum upg_result upg_result_t
 分区枚举类型。
 
typedef enum upg_status upg_status_t
 升级状态枚举类型。
 
typedef struct upg_key_area_data upg_key_area_data_t
 升级key区域数据类型。
 
typedef struct upg_fota_info_data upg_fota_info_data_t
 升级fota信息数据类型。
 
typedef struct upg_image_hash_node upg_image_hash_node_t
 升级镜像哈希节点类型。
 
typedef struct upg_package_header upg_package_header_t
 升级包头类型
 
typedef struct upg_image_header upg_image_header_t
 升级包镜像头类型
 
typedef void(* uapi_upg_write_done_cb) (errcode_t result)
 写类型后的回调函数。
 
typedef void(* uapi_upg_progress_cb) (uint32_t percent)
 进度通知回调函数类型。
 
typedef errcode_t(* uapi_upg_user_defined_check) (uint8_t *user_info, uint32_t info_len, uintptr_t param)
 自定义字段类型校验函数。
 
typedef void *(* upg_func_malloc) (const uint32_t size)
 升级使用内存分配函数。
 
typedef void(* upg_func_free) (void *ptr)
 升级释放内存函数。
 
typedef void(* upg_func_serial_putc) (const char c)
 upg串口输出函数。
 
typedef struct upg_func upg_func_t
 可选函数结构。
 
typedef struct upg_prepare_info upg_prepare_info_t
 升级准备信息结构。
 

枚举

enum  upg_result {
  UPG_RESULT_UPDATE_SUCCESS , UPG_RESULT_VERIFY_HEAD_FAILED , UPG_RESULT_VERIFY_HASH_TABLE_FAILED , UPG_RESULT_VERIFY_IMAGE_FAILED ,
  UPG_RESULT_VERIFY_OLD_IMAGE_FAILED , UPG_RESULT_DECOMPRESS_IMAGE_FAILED , UPG_RESULT_DECRYPT_IMAGE_FAILED , UPG_RESULT_RECRYPT_IMAGE_FAILED ,
  UPG_RESULT_DIFF_IMAGE_FAILED , UPG_RESULT_UPDATE_IMAGE_FAILED , UPG_RESULT_PROCESS_NV_FAILED , UPG_RESULT_VERIFY_VERSION_FAILED ,
  UPG_RESULT_IMAGE_ID_FAILED , UPG_RESULT_RETRY_ALL_FAILED , UPG_RESULT_MAX
}
 分区枚举类型。 更多...
 
enum  upg_status { UPG_STATUS_SUCC , UPG_STATUS_FAIL , UPG_STATUS_UPDATING , UPG_STATUS_NONE }
 升级状态枚举类型。 更多...
 

函数

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)
 获取升级结果。
 
upg_status_t uapi_upg_get_status (void)
 获取升级状态。
 
errcode_t uapi_upg_prepare (upg_prepare_info_t *prepare_info)
 用来保存升级包的本地存储器的准备工作。
 
errcode_t uapi_upg_reset_upgrade_flag (void)
 重置升级标记
 
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)
 注册用户自定义字段的校验函数。
 

详细描述

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
Description: UPG Interface Header
History:
2022-09-01, Create file.

宏定义说明

◆ DIE_ID_LEN

#define DIE_ID_LEN   16

芯片ID长度。

◆ IV_LEN

#define IV_LEN   16

IV 长度。

◆ PROTECT_KEY_LEN

#define PROTECT_KEY_LEN   16

加密秘钥长度。

◆ SHA_256_LENGTH

#define SHA_256_LENGTH   32

哈希长度。

类型定义说明

◆ uapi_upg_progress_cb

typedef void(* uapi_upg_progress_cb) (uint32_t percent)

进度通知回调函数类型。

◆ uapi_upg_user_defined_check

typedef errcode_t(* uapi_upg_user_defined_check) (uint8_t *user_info, uint32_t info_len, uintptr_t param)

自定义字段类型校验函数。

◆ uapi_upg_write_done_cb

typedef void(* uapi_upg_write_done_cb) (errcode_t result)

写类型后的回调函数。

◆ upg_fota_info_data_t

升级fota信息数据类型。

◆ upg_func_free

typedef void(* upg_func_free) (void *ptr)

升级释放内存函数。

◆ upg_func_malloc

typedef void *(* upg_func_malloc) (const uint32_t size)

升级使用内存分配函数。

◆ upg_func_serial_putc

typedef void(* upg_func_serial_putc) (const char c)

upg串口输出函数。

◆ upg_func_t

typedef struct upg_func upg_func_t

可选函数结构。

◆ upg_image_hash_node_t

升级镜像哈希节点类型。

◆ upg_image_header_t

升级包镜像头类型

◆ upg_key_area_data_t

升级key区域数据类型。

◆ upg_package_header_t

升级包头类型

◆ upg_prepare_info_t

升级准备信息结构。

◆ upg_result_t

typedef enum upg_result upg_result_t

分区枚举类型。

◆ upg_status_t

typedef enum upg_status upg_status_t

升级状态枚举类型。

枚举类型说明

◆ upg_result

enum upg_result

分区枚举类型。

枚举值
UPG_RESULT_UPDATE_SUCCESS 

升级成功。

UPG_RESULT_VERIFY_HEAD_FAILED 

校验升级包头失败。

UPG_RESULT_VERIFY_HASH_TABLE_FAILED 

校验Hash Table失败。

UPG_RESULT_VERIFY_IMAGE_FAILED 

校验镜像失败。

UPG_RESULT_VERIFY_OLD_IMAGE_FAILED 

校验旧镜像失败。

UPG_RESULT_DECOMPRESS_IMAGE_FAILED 

解压缩失败。

UPG_RESULT_DECRYPT_IMAGE_FAILED 

解密失败。

UPG_RESULT_RECRYPT_IMAGE_FAILED 

重加密失败。

UPG_RESULT_DIFF_IMAGE_FAILED 

差分恢复失败。

UPG_RESULT_UPDATE_IMAGE_FAILED 

更新镜像到Flash失败。

UPG_RESULT_PROCESS_NV_FAILED 

处理NV镜像失败。

UPG_RESULT_VERIFY_VERSION_FAILED 

防回滚校验失败。

UPG_RESULT_IMAGE_ID_FAILED 

镜像ID校验失败。

UPG_RESULT_RETRY_ALL_FAILED 

所有升级尝试均失败。

UPG_RESULT_MAX 

升级结果最大值。

◆ upg_status

enum upg_status

升级状态枚举类型。

枚举值
UPG_STATUS_SUCC 

升级成功。

UPG_STATUS_FAIL 

升级失败。

UPG_STATUS_UPDATING 

正在进行升级。

UPG_STATUS_NONE 

非升级状态。

函数说明

◆ uapi_upg_get_result()

errcode_t uapi_upg_get_result ( upg_result_t result,
uint32_t *  last_image_index 
)

获取升级结果。

◆ uapi_upg_get_status()

upg_status_t uapi_upg_get_status ( void  )

获取升级状态。

◆ uapi_upg_get_storage_size()

uint32_t uapi_upg_get_storage_size ( void  )

获取可存放升级包的空间大小。

◆ uapi_upg_init()

errcode_t uapi_upg_init ( const upg_func_t func_list)

初始化升级模块。

◆ uapi_upg_prepare()

errcode_t uapi_upg_prepare ( upg_prepare_info_t prepare_info)

用来保存升级包的本地存储器的准备工作。

◆ uapi_upg_read_package()

errcode_t uapi_upg_read_package ( uint32_t  offset,
uint8_t *  buff,
uint32_t  len 
)

从本地存储器读取升级包数据。

◆ uapi_upg_register_progress_callback()

errcode_t uapi_upg_register_progress_callback ( uapi_upg_progress_cb  func)

注册升级进度通知回调函数。

◆ uapi_upg_register_user_defined_verify_func()

void uapi_upg_register_user_defined_verify_func ( uapi_upg_user_defined_check  func,
uintptr_t  param 
)

注册用户自定义字段的校验函数。

◆ uapi_upg_request_upgrade()

errcode_t uapi_upg_request_upgrade ( bool  reset)

申请开始进行本地升级。

◆ uapi_upg_reset_upgrade_flag()

errcode_t uapi_upg_reset_upgrade_flag ( void  )

重置升级标记

◆ uapi_upg_start()

errcode_t uapi_upg_start ( void  )

开始本地升级。

◆ uapi_upg_verify_file()

errcode_t uapi_upg_verify_file ( const upg_package_header_t pkg_header)

校验整个升级包。

◆ uapi_upg_verify_file_head()

errcode_t uapi_upg_verify_file_head ( const upg_package_header_t pkg_header)

校验升级包头结构。

◆ uapi_upg_verify_file_image()

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 
)

校验升级包中的升级镜像。

◆ uapi_upg_write_package_async()

errcode_t uapi_upg_write_package_async ( uint32_t  offset,
const uint8_t *  buff,
uint16_t  len,
uapi_upg_write_done_cb  callback 
)

将升级包数据写入本地存储器。

◆ uapi_upg_write_package_sync()

errcode_t uapi_upg_write_package_sync ( uint32_t  offset,
const uint8_t *  buff,
uint16_t  len 
)

将升级包数据写入本地存储器。