WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
upg_definitions.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2021. All rights reserved.
3 * Description: struct definitions for UPG
4 */
5
6#ifndef UPG_DEFINITIONS_H
7#define UPG_DEFINITIONS_H
8
9#include <stdint.h>
11#include "upg.h"
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif
16#endif
17
18
19#define UPG_IMAGE_ID_NV 0xCB9E063C
20#define UPG_IMAGE_ID_RES_INDEX 0xCB9E0826
21#define UPG_IMAGE_ID_RES_DATA 0xCB9E0832
22#define UPG_IMAGE_ID_KEY_AREA 0xCB8D154E
23#define UPG_IMAGE_ID_FOTA_INFO_AREA 0xCB8D154E
24#define UPG_IMAGE_HRADER_MAGIC 0x464F5451
25
26#define UPG_FIRMWARE_MAX_NUM 20
27#define UPG_FLAG_RETYR_TIMES 3
28
29#define VERIFY_BUFF_LEN 0x1000
30
31#define ENCRYPTION_FLAG_ENABLED 0x3C7896E1 /* 加密打开 */
32#define DECOMPRESS_FLAG_ZIP 0x3C7896E1 /* 压缩镜像 */
33#define DECOMPRESS_FLAG_DIFF 0x44494646 /* 差分镜像 */
34
35#define UPG_HEAD_MAGIC 0x55AA55AA
36#define UPG_END_MAGIC 0xAA55AA55
37
42
43typedef enum upg_image_status {
44 UPG_IMAGE_STATUS_NOT_STARTED, /* 镜像未开始处理 */
45 UPG_IMAGE_STATUS_STARTED, /* 镜像已开始处理 */
46 UPG_IMAGE_STATUS_RETRY, /* 镜像处理失败,需要重试 */
47 UPG_IMAGE_STATUS_FINISHED, /* 镜像已处理完成(镜像更新成功或更新失败但重试已达到3次) */
50
52 UPG_IMAGE_STATUS_SWITCH_TO_STARTED, /* 切换到开始处理状态(当前处理的flag置为0x0F) */
53 UPG_IMAGE_STATUS_SWITCH_TO_RETRY, /* 切换到重试状态(当前处理的flag置为0x00) */
54 UPG_IMAGE_STATUS_SWITCH_TO_FINISHED, /* 切换到处理完成状态(所有3个flag都置为0x00) */
57
64
65typedef struct fota_upgrade_flag_area {
66 uint32_t head_magic;
69 uint32_t firmware_num;
72 uint8_t ver_change_flag; /* 版本是否变化标记,0x0:无变化 0xFF:有变化 */
73 uint32_t update_result;
75 uint32_t nv_data_len;
77 uint32_t nv_hash_len;
78 uint32_t complete_flag;
81
86
91
92typedef struct upg_resource_index {
93 char file_path[128];
94 uint32_t offset;
95 uint32_t file_len;
98
103
116
117#ifdef __cplusplus
118#if __cplusplus
119}
120#endif
121#endif
122#endif /* UPG_DEFINITIONS_H */
partition_ids_t
分区ID
Definition partition_resource_id.h:31
void(* uapi_upg_progress_cb)(uint32_t percent)
进度通知回调函数类型。
Definition upg.h:305
enum upg_result upg_result_t
分区枚举类型。
enum upg_status upg_status_t
升级状态枚举类型。
Definition upg_definitions.h:65
uint32_t complete_flag
Definition upg_definitions.h:78
uint32_t head_magic
Definition upg_definitions.h:66
uint32_t package_length
Definition upg_definitions.h:68
uint32_t nv_data_offset
Definition upg_definitions.h:74
uint8_t firmware_flag[20][3]
Definition upg_definitions.h:70
uint8_t nv_flag[3]
Definition upg_definitions.h:71
uint8_t ver_change_flag
Definition upg_definitions.h:72
uint32_t head_end_magic
Definition upg_definitions.h:79
uint32_t firmware_num
Definition upg_definitions.h:69
uint32_t nv_hash_offset
Definition upg_definitions.h:76
uint32_t nv_hash_len
Definition upg_definitions.h:77
uint32_t update_result
Definition upg_definitions.h:73
uint32_t head_before_offset
Definition upg_definitions.h:67
uint32_t nv_data_len
Definition upg_definitions.h:75
可选函数结构。
Definition upg.h:350
Definition upg_definitions.h:87
uint32_t img_ids_cnt
Definition upg_definitions.h:89
uint32_t * img_ids
Definition upg_definitions.h:88
Definition upg_definitions.h:38
partition_ids_t item_id
Definition upg_definitions.h:40
uint32_t image_id
Definition upg_definitions.h:39
Definition upg_definitions.h:82
uint32_t finished_fw_size
Definition upg_definitions.h:84
uint32_t total_new_fw_size
Definition upg_definitions.h:83
Definition upg_definitions.h:99
uint32_t file_num
Definition upg_definitions.h:100
upg_resource_node_t file_node[0]
Definition upg_definitions.h:101
Definition upg_definitions.h:92
uint32_t file_len
Definition upg_definitions.h:95
uint32_t offset
Definition upg_definitions.h:94
char file_path[128]
Definition upg_definitions.h:93
uint32_t operation_type
Definition upg_definitions.h:96
Definition upg_definitions.h:104
uapi_upg_progress_cb progress_cb
Definition upg_definitions.h:112
uint8_t rsv[3]
Definition upg_definitions.h:106
upg_func_t func_list
Definition upg_definitions.h:109
bool inited
Definition upg_definitions.h:105
upg_package_info_t package_info
Definition upg_definitions.h:114
uint32_t packge_len
Definition upg_definitions.h:110
upg_status_t upg_status
Definition upg_definitions.h:107
upg_result_t temporary_result
Definition upg_definitions.h:108
#define UPG_FIRMWARE_MAX_NUM
Definition upg_definitions.h:26
enum upg_image_status_switch upg_image_status_switch_t
enum upg_resource_operation upg_resource_operation_t
upg_resource_operation
Definition upg_definitions.h:58
@ UPG_RESOURCE_DELETE_FILE
Definition upg_definitions.h:61
@ UPG_RESOURCE_ADD_FILE
Definition upg_definitions.h:59
@ UPG_RESOURCE_REMOVE_DIR
Definition upg_definitions.h:62
@ UPG_RESOURCE_AMEND_FILE
Definition upg_definitions.h:60
upg_image_status_switch
Definition upg_definitions.h:51
@ UPG_IMAGE_STATUS_SWITCH_INVALID
Definition upg_definitions.h:55
@ UPG_IMAGE_STATUS_SWITCH_TO_STARTED
Definition upg_definitions.h:52
@ UPG_IMAGE_STATUS_SWITCH_TO_FINISHED
Definition upg_definitions.h:54
@ UPG_IMAGE_STATUS_SWITCH_TO_RETRY
Definition upg_definitions.h:53
struct upg_package_info upg_package_info_t
struct upg_image_partition_ids_map upg_image_partition_ids_map_t
struct upg_resource_head upg_resource_index_t
struct upg_storage_ctx upg_storage_ctx_t
upg_image_status
Definition upg_definitions.h:43
@ UPG_IMAGE_STATUS_RETRY
Definition upg_definitions.h:46
@ UPG_IMAGE_STATUS_INVALID
Definition upg_definitions.h:48
@ UPG_IMAGE_STATUS_STARTED
Definition upg_definitions.h:45
@ UPG_IMAGE_STATUS_NOT_STARTED
Definition upg_definitions.h:44
@ UPG_IMAGE_STATUS_FINISHED
Definition upg_definitions.h:47
#define UPG_FLAG_RETYR_TIMES
Definition upg_definitions.h:27
struct upg_image_collections upg_image_collections_t
struct fota_upgrade_flag_area fota_upgrade_flag_area_t
enum upg_image_status upg_image_status_t
struct upg_resource_index upg_resource_node_t