mcu_ab568x/app/platform/libs/api_update.h
2025-05-30 18:03:10 +08:00

110 lines
2.8 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _API_UPDATE_H
#define _API_UPDATE_H
typedef enum {
FOT_ERR_OK,
FOT_ERR_NO_UPDATA,
FOT_ERR_KEY,
FOT_ERR_FILE_FORMAT,
FOT_ERR_FILE_TAG,
FOT_ERR_FILE_DATA,
FOT_ERR_MAC_SIZE,
FOT_ERR_START,
FOT_ERR_DOWN_START,
FOT_ERR_HEAD2_START,
FOT_ERR_DOWN_LAST,
FOT_ERR_CRC_VERIFY,
FOT_ERR_AREA_SIZE,
/*以上err类型和库里面对应,通过fot_get_err()或ota_pack_get_err()获取到*/
FOT_ERR_SEQ = 0x40,
FOT_ERR_DATA_LEN,
FOT_ERR_TWS_DISCONNECT = 0x80,
FOT_UPDATE_PAUSE = 0xfd,
FOT_UPDATE_CONTINUE = 0xfe,
FOT_UPDATE_DONE = 0xff,
} FOT_ERR_ENUM;
//OTA PACK
/**
* @name void ota_pack_init(void)
* @brief 初始化函数,在开始进行升级之前需调用该函数进行初始化操作
* @return NULL
**/
void ota_pack_init(void);
/**
* @name bool ota_pack_write(u8 *buf);
* @brief 写数据函数收到fot文件的数据后通过该接口将数据写到flash长度需固定为512字节
* @param[in] buf 数据
* @return NULL
**/
bool ota_pack_write(u8 *buf);
/**
* @name u8 ota_pack_get_err(void)
* @brief 获取升级状态函数,升级过程有无错误发生可通过该函数进行获取
* @return error code
**/
u8 ota_pack_get_err(void);
/**
* @name bool ota_pack_is_write_done(void)
* @brief 判断当前fot数据是否全部接收完
* @return 成功返回 true
失败返回 fasle
**/
bool ota_pack_is_write_done(void);
/**
* @name bool ota_pack_verify(void)
* @brief 升级校验函数,数据接收完后需通过该接口进行数据的校验
* @return 成功返回 true
失败返回 fasle
**/
bool ota_pack_verify(void);
/**
* @name bool ota_pack_done(void)
* @brief 升级完成函数,在升级校验成功后调用,该函数会擦除之前旧的引导程序,
下次复位后将跑压缩的引导程序进行解压缩操作
* @return 成功返回 true
失败返回 fasle
**/
void ota_pack_done(void);
/**
* @name bool ota_pack_breakpoint_info_read(void)
* @brief 断点获取函数,需要断点续传功能的,可通过该函数触发断点信息的获取,
断点位置通过u32 ota_pack_get_curaddr(void)接口返回
* @return 成功返回 true
失败返回 fasle
**/
bool ota_pack_breakpoint_info_read(void);
/**
* @name u32 ota_pack_get_curaddr(void)
* @brief 获取断点位置
* @return 断点位置
**/
u32 ota_pack_get_curaddr(void);
//OTA Common
void load_code_fota(void);
void unlock_code_fota(void);
void ota_enter(void); //进入OTA流程
void ota_exit(void); //退出OTA流程
#endif