#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