
1. effective "Differential Upgrade" patch algorithm with high compression rate 2. effective recovery algorithm support recovery firmware in blocks which has low memory consumption and wear-leveling strategies, especially suitable for embeded devices with low RAM. 3. add sample ota bootloader project, see: board\TencentOS_tiny_EVB_MX_Plus\KEIL\ota\ota_bootloader_recovery 4. add sample application project for download firmware through http, see: board\TencentOS_tiny_EVB_MX_Plus\KEIL\ota\ota_application_download_through_http 5. add sample application project for download firmware through qcloud explorer console, see: board\TencentOS_tiny_EVB_MX_Plus\KEIL\ota\ota_application_download_through_qcloud_iot_explorer 6. an OTA markdown document is pending
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
/* XzEnc.h -- Xz Encode
|
|
2017-06-27 : Igor Pavlov : Public domain */
|
|
|
|
#ifndef __XZ_ENC_H
|
|
#define __XZ_ENC_H
|
|
|
|
#include "Lzma2Enc.h"
|
|
|
|
#include "Xz.h"
|
|
|
|
EXTERN_C_BEGIN
|
|
|
|
|
|
#define XZ_PROPS__BLOCK_SIZE__AUTO LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO
|
|
#define XZ_PROPS__BLOCK_SIZE__SOLID LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID
|
|
|
|
|
|
typedef struct
|
|
{
|
|
UInt32 id;
|
|
UInt32 delta;
|
|
UInt32 ip;
|
|
int ipDefined;
|
|
} CXzFilterProps;
|
|
|
|
void XzFilterProps_Init(CXzFilterProps *p);
|
|
|
|
|
|
typedef struct
|
|
{
|
|
CLzma2EncProps lzma2Props;
|
|
CXzFilterProps filterProps;
|
|
unsigned checkId;
|
|
UInt64 blockSize;
|
|
int numBlockThreads_Reduced;
|
|
int numBlockThreads_Max;
|
|
int numTotalThreads;
|
|
int forceWriteSizesInHeader;
|
|
UInt64 reduceSize;
|
|
} CXzProps;
|
|
|
|
void XzProps_Init(CXzProps *p);
|
|
|
|
|
|
typedef void * CXzEncHandle;
|
|
|
|
CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
|
|
void XzEnc_Destroy(CXzEncHandle p);
|
|
SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props);
|
|
void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize);
|
|
SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
|
|
|
|
SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream,
|
|
const CXzProps *props, ICompressProgress *progress);
|
|
|
|
SRes Xz_EncodeEmpty(ISeqOutStream *outStream);
|
|
|
|
EXTERN_C_END
|
|
|
|
#endif
|