1 Star 0 Fork 119

linhx/mcu_bsdiff_upgrade

forked from 王瑞/mcu_bsdiff_upgrade 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
user_interface.h 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
王瑞 提交于 2022-12-03 22:43 . firstcommit
/**
* @file user_interface.h
* @author your name (you@domain.com)
* @brief
* @version 0.1
* @date 2022-11-09
*
* @copyright Copyright (c) 2022
*
*/
#ifndef __USER_INTERFACE_H_
#define __USER_INTERFACE_H_
#include <stdint.h>
#include <stdio.h>
#include "common_utils.h"
#include "bs_type.h"
#include "bspatch.h"
#include "crc32.h"
#define IH_NMLEN (32 - 4) /* Image Name Length */
/* 差分包制作时自带的文件头信息,用户只需要关心中文注释的部分 */
typedef struct image_header
{
uint32_t ih_magic; /* Image Header Magic Number */
uint32_t ih_hcrc; /* Image Header CRC Checksum 差分包包头校验 */
uint32_t ih_time; /* Image Creation Timestamp */
uint32_t ih_size; /* Image Data Size 差分包的大小 */
uint32_t ih_load; /* Data Load Address 上一版本旧文件的大小 */
uint32_t ih_ep; /* Entry Point Address 要升级的新文件的大小 */
uint32_t ih_dcrc; /* Image Data CRC Checksum 新文件的CRC */
uint8_t ih_os; /* Operating System */
uint8_t ih_arch; /* CPU architecture */
uint8_t ih_type; /* Image Type */
uint8_t ih_comp; /* Compression Type */
uint8_t ih_name[IH_NMLEN]; /* Image Name */
uint32_t ih_ocrc; /* Old Image Data CRC Checksum 上一版本旧文件的CRC */
} image_header_t;
/* 差分包制作时自带的文件头信息,用户只需要关心中文注释的部分 */
/* 以下由用户实现 */
#define bs_printf(...)
// #define bs_printf(...) APP_PRINT( __VA_ARGS__)
#define bs_malloc(...) pvPortMalloc(__VA_ARGS__)
#define bs_free(...) vPortFree(__VA_ARGS__)
/* 将差分文件写入用户的flash */
extern int bs_flash_write(uint32_t addr, const void *p, uint32_t len);
/**
* @brief 用户使用差分升级时唯一需要关心的接口
*
* @param old 设备中执行区代码所在的地址,用户可指定flash执行区的地址,方便算法读出来当前
* 运行中的代码
* @param oldsize 设备中执行区代码的长度,用户可在差分包bin头获取
* @param patch 设备中已经下载的差分包所在的flash地址,或者ram地址,只要能让算法读出来即可
* 注意,下载的差分包自带image_header_t格式的文件头,真正的差分包需要偏
* 移sizeof(image_header_t)的长度
* @param patchsize 设备中已经下载的差分包的长度,用户可在差分包bin头获取
* @param newfile 新文件的大小,用户需填入新版本bin的长度,用户亦可以差分包bin头获取
* @return int 然后错误码,0成功,1失败
*/
extern int iap_patch(const uint8_t* old, uint32_t oldsize, const uint8_t* patch,
uint32_t patchsize, uint32_t newfile);
#endif // !__USER_INTERFACE_H_
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/lin-hongxun/mcu_bsdiff_upgrade.git
git@gitee.com:lin-hongxun/mcu_bsdiff_upgrade.git
lin-hongxun
mcu_bsdiff_upgrade
mcu_bsdiff_upgrade
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385