Files

42 lines
1.2 KiB
C

/**
* @file lwip_ftp_upgrade.h
* @brief 基于 LwIP socket 的 FTP 固件升级状态机(网线远程升级)
*
* 说明:
* - 参考 ec200a_4g_ftp.c 的“状态机 + 周期调用”风格;
* - 通过 LwIP socket 实现 FTP 控制/数据连接,按 1024 字节分包写入升级区域;
* - 每次调用只推进一小步,不阻塞 v_Plat_Comm 线程。
*/
#ifndef LWIP_FTP_UPGRADE_H
#define LWIP_FTP_UPGRADE_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief 初始化 LwIP FTP 升级状态机
*
* 说明:
* - 直接读取全局 t_ftp_update_info 中的 FTP 参数(server/port/user/pass/path/file_name);
* - 清空内部静态状态结构体,关闭残留 socket,准备进入 CONNECT 步骤。
*/
void lwip_ftp_upgrade_init_from_tftp(void);
/**
* @brief 周期推进 LwIP FTP 升级状态机(单步)
*
* 返回值:
* - 0:升级进行中(下次调用继续推进);
* - 1:升级成功完成(文件全部下载且升级头标记为 NEED_UP);
* - <0:升级失败(FTP/网络/Flash 错误等,具体原因在日志中打印)。
*/
int lwip_ftp_upgrade_step(void);
#ifdef __cplusplus
}
#endif
#endif /* LWIP_FTP_UPGRADE_H */