WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
upg_lzmadec.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2021. All rights reserved.
3 * Description: UPG lzma Interface Header.
4 */
5
6#ifndef UPG_LZMADEC_H
7#define UPG_LZMADEC_H
8
9#include <stdint.h>
10#include "LzmaDec.h"
11#include "upg_definitions.h"
12#include "upg.h"
13
14#ifdef __cplusplus
15#if __cplusplus
16extern "C" {
17#endif
18#endif
19/* header: 5 bytes of LZMA properties and 8 bytes of uncompressed size */
20#define LZMA_HEAD_SIZE ((LZMA_PROPS_SIZE) + 8) /* 8: lzma解压算法固定长度 */
21#define LZMA_HEAD_ALIGN_SIZE ((LZMA_HEAD_SIZE) + 3) /* PROPS(5byte) + head(8byte) + fill_align(3byte) */
22#ifdef CONFIG_MIDDLEWARE_SUPPORT_UPG_COMPRESS_ENCRY
23#define OUT_BUF_SIZE 0x4000
24#else
25#define OUT_BUF_SIZE 0x1000
26#endif
27#define IN_BUF_SIZE 0x1000
28
29/* 本块数据解压处理结构体 */
30typedef struct {
31 uint8_t *inbuf; /* 暂存从压缩分区读取数据 */
32 uint8_t *outbuf; /* 暂存写入运行分区的数据 */
33 uint32_t write_pos; /* 写入outbuf缓冲区下标 */
34 uint32_t in_size; /* 本次读取数据块,解压前数据长度 */
36
37typedef struct upg_lzma_decode2_data {
38 uint32_t image_id;
39 uint32_t in_offset; /* 已解压部分,解压前的总长度,用作当前待解压的下标 */
40 uint32_t out_offset; /* 已解压部分,解压后的总长度,用作解压后写入flash的偏移 */
41 uint32_t compress_len; /* 剩余待解压部分,解压前的总长度 */
42 uint32_t decompress_len; /* 剩余待解压部分,解压后的总长度 */
45
46uint32_t upg_lzma_init(CLzmaDec *p, upg_lzma_decode2_data_t *val_data, const Byte *props, uint32_t props_len);
47void upg_lzma_deinit(CLzmaDec *p, upg_lzma_decode2_data_t *val_data);
48uint32_t upg_lzma_decode(CLzmaDec *p, upg_lzma_decode2_data_t *data, const upg_image_header_t *image);
50
51#ifdef __cplusplus
52#if __cplusplus
53}
54#endif
55#endif
56
57#endif /* UPG_LZMADEC_H */
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
升级包镜像头类型
Definition upg.h:250
Definition upg_lzmadec.h:30
uint8_t * outbuf
Definition upg_lzmadec.h:32
uint32_t write_pos
Definition upg_lzmadec.h:33
uint8_t * inbuf
Definition upg_lzmadec.h:31
uint32_t in_size
Definition upg_lzmadec.h:34
Definition upg_lzmadec.h:37
upg_lzma_buf_t buf
Definition upg_lzmadec.h:43
uint32_t out_offset
Definition upg_lzmadec.h:40
uint32_t decompress_len
Definition upg_lzmadec.h:42
uint32_t compress_len
Definition upg_lzmadec.h:41
uint32_t image_id
Definition upg_lzmadec.h:38
uint32_t in_offset
Definition upg_lzmadec.h:39
Definition upg_definitions.h:92
Definition hal_uart_v151_regs_def.h:38
uint32_t upg_lzma_decode(CLzmaDec *p, upg_lzma_decode2_data_t *data, const upg_image_header_t *image)
Definition upg_lzmadec.c:273
struct upg_lzma_decode2_data upg_lzma_decode2_data_t
uint32_t upg_lzma_init(CLzmaDec *p, upg_lzma_decode2_data_t *val_data, const Byte *props, uint32_t props_len)
Definition upg_lzmadec.c:89
void upg_lzma_deinit(CLzmaDec *p, upg_lzma_decode2_data_t *val_data)
Definition upg_lzmadec.c:137
errcode_t upg_resource_file_decode(CLzmaDec *p, upg_lzma_decode2_data_t *data, upg_resource_node_t *file_info)
Definition upg_lzmadec.c:299