From e9eed60b00d46009a21e0f7ed76263200f79b503 Mon Sep 17 00:00:00 2001 From: helei Date: Wed, 19 Aug 2026 23:05:44 +0800 Subject: [PATCH] =?UTF-8?q?V1.5:=20OTA=E4=BF=A1=E6=81=AF=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=AD=98=E5=B9=B3=E5=8F=B0=E4=BB=BB=E5=8A=A1id(ota=5Fid),?= =?UTF-8?q?=E6=96=B0=E5=9B=BA=E4=BB=B6=E9=A6=96=E5=90=AF=E5=9C=A8=E5=8F=AF?= =?UTF-8?q?=E9=9D=A0=E8=BF=9E=E6=8E=A5=E4=B8=8A=E8=A1=A5=E5=8F=91result.po?= =?UTF-8?q?st+confirm.post;BL=E7=9A=84w25q64.h=E5=90=8C=E6=AD=A5(=E9=9C=80?= =?UTF-8?q?=E9=87=8D=E5=88=B7BL)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- V1.5/STM32F103_App1/HardWare/CAR/air780e.c | 11 +- .../HardWare/NETWORK/net_wifi_ota.c | 2 +- V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.c | 4 +- V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.h | 3 +- V1.5/STM32F103_App1/Inc/main.h | 2 +- .../HardWare/W25Q64/w25q64.h | 1 + V1.5/debug.txt | 502 ++++++------------ V1.5/鐗堟湰璇存槑.md | 4 + 8 files changed, 193 insertions(+), 336 deletions(-) diff --git a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c index b64751e..b24b56e 100644 --- a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c +++ b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c @@ -750,7 +750,7 @@ static void air780e_trigger_ota_body(const char *host, int port, const char *pat air780e_mqtt_result_nowait("iot.ota.result.post", ota_id, 1); bg_delay(1000); /* 给模组一点发送时间即复位(权威通知由重启后的 confirm.post 承担) */ /* 只把固件信息写入 W25Q64,版本号在 APP 确认成功后再写入 EEPROM */ - W25Q64_OTA_SetNewInfo(new_ver, file_size, crc16); + W25Q64_OTA_SetNewInfo(new_ver, file_size, crc16, ota_id); reset_log_mark(RSN_OTA_UPDATE); bg_delay(100); NVIC_SystemReset(); } @@ -777,10 +777,17 @@ int air780e_ota_confirm(void) else log_error("> OTA 确认写入失败(已重试 3 次)"); } + /* 重启后的新鲜可靠连接上,先补发 result.post(带平台任务 id,驱动"完成"标志), + * 再发 confirm.post(防回滚确认)。下载完成时发的那条 result 在 OTA 会话上不可靠 */ + int rc = 0; + if (info.ota_id[0]) { + rc |= NET_mqtt_report("iot.ota.result.post", info.ota_id, 1); + } /* 再向服务器上报"确认成功"(走网络层路由,4G/WiFi 通道均可) */ char id_buf[24] = {0}; snprintf(id_buf, sizeof(id_buf), "%u", info.new_version); /* 用版本号作为 id 上报 */ - return NET_mqtt_report("iot.ota.confirm.post", id_buf, 1); + rc |= NET_mqtt_report("iot.ota.confirm.post", id_buf, 1); + return rc; } diff --git a/V1.5/STM32F103_App1/HardWare/NETWORK/net_wifi_ota.c b/V1.5/STM32F103_App1/HardWare/NETWORK/net_wifi_ota.c index eceb665..ebf29fc 100644 --- a/V1.5/STM32F103_App1/HardWare/NETWORK/net_wifi_ota.c +++ b/V1.5/STM32F103_App1/HardWare/NETWORK/net_wifi_ota.c @@ -267,7 +267,7 @@ void net_wifi_ota(const char *host, int port, const char *path, log_info("* 正在重启进入 BootLoader... *"); log_info("**************************************"); /* 只把固件信息写入 W25Q64,版本号在 APP 确认成功后再写入 EEPROM */ - W25Q64_OTA_SetNewInfo(new_ver, file_size, crc16); + W25Q64_OTA_SetNewInfo(new_ver, file_size, crc16, ota_id); reset_log_mark(RSN_OTA_UPDATE); bg_delay(100); NVIC_SystemReset(); diff --git a/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.c b/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.c index dffe714..a5df2dd 100644 --- a/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.c +++ b/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.c @@ -312,7 +312,7 @@ int W25Q64_OTA_WriteInfo(const W25Q64_OtaInfo *info) return 0; } -int W25Q64_OTA_SetNewInfo(uint16_t version, uint32_t size, uint16_t crc16) +int W25Q64_OTA_SetNewInfo(uint16_t version, uint32_t size, uint16_t crc16, const char *ota_id) { int ret; storage_lock(); @@ -330,6 +330,8 @@ int W25Q64_OTA_SetNewInfo(uint16_t version, uint32_t size, uint16_t crc16) info.boot_trial_count = 0; info.app_confirmed = 0; info.backup_valid = 0; /* 新下载后,下一次更新需要重新备份当前 APP */ + memset(info.ota_id, 0, sizeof(info.ota_id)); + if (ota_id) strncpy(info.ota_id, ota_id, sizeof(info.ota_id) - 1); /* 平台任务 id,重启后补发结果用 */ ret = W25Q64_OTA_WriteInfo(&info); storage_unlock(); return ret; diff --git a/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.h b/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.h index 6163454..b91842c 100644 --- a/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.h +++ b/V1.5/STM32F103_App1/HardWare/W25Q64/w25q64.h @@ -71,6 +71,7 @@ typedef struct { uint16_t backup_crc16; /* 备份固件 CRC16 */ uint8_t backup_valid; /* 槽 A 备份是否有效 */ uint8_t reserved2; + char ota_id[20]; /* 平台 OTA 任务 id(重启后补发 result.post 用) */ uint16_t checksum; /* 前面所有字节累加和 */ } W25Q64_OtaInfo; #pragma pack(pop) @@ -94,7 +95,7 @@ int W25Q64_Verify(uint32_t addr, const uint8_t *data, uint32_t len); /* OTA 专用信息区操作 */ int W25Q64_OTA_ReadInfo(W25Q64_OtaInfo *info); int W25Q64_OTA_WriteInfo(const W25Q64_OtaInfo *info); -int W25Q64_OTA_SetNewInfo(uint16_t version, uint32_t size, uint16_t crc16); +int W25Q64_OTA_SetNewInfo(uint16_t version, uint32_t size, uint16_t crc16, const char *ota_id); int W25Q64_OTA_SetBackupInfo(uint32_t size, uint16_t crc16); int W25Q64_OTA_ClearNew(void); int W25Q64_OTA_SetState(uint8_t state); diff --git a/V1.5/STM32F103_App1/Inc/main.h b/V1.5/STM32F103_App1/Inc/main.h index 180730d..2f71d7e 100644 --- a/V1.5/STM32F103_App1/Inc/main.h +++ b/V1.5/STM32F103_App1/Inc/main.h @@ -58,7 +58,7 @@ extern UART_HandleTypeDef huart3; #define MQTT_USERNAME "766990788193702677" #define MQTT_PASSWORD "6ae9622b7034326b" -////RTOS版-投料机-无蠕变磅秤-03 +//RTOS版-投料机-无蠕变磅秤-03 //#define MQTT_CLIENT_ID "5791a8579d459290" //#define MQTT_USERNAME "766990788193702677" //#define MQTT_PASSWORD "5f6cd7748ec9db35" diff --git a/V1.5/STM32F103_BootLoader/HardWare/W25Q64/w25q64.h b/V1.5/STM32F103_BootLoader/HardWare/W25Q64/w25q64.h index 111e6e6..4082fe8 100644 --- a/V1.5/STM32F103_BootLoader/HardWare/W25Q64/w25q64.h +++ b/V1.5/STM32F103_BootLoader/HardWare/W25Q64/w25q64.h @@ -75,6 +75,7 @@ typedef struct { uint16_t backup_crc16; /* 备份固件 CRC16 */ uint8_t backup_valid; /* 槽 A 备份是否有效 */ uint8_t reserved2; + char ota_id[20]; /* 平台 OTA 任务 id(重启后补发 result.post 用) */ uint16_t checksum; /* 前面所有字节累加和 */ } W25Q64_OtaInfo; #pragma pack(pop) diff --git a/V1.5/debug.txt b/V1.5/debug.txt index a5c4b3b..9df8bfa 100644 --- a/V1.5/debug.txt +++ b/V1.5/debug.txt @@ -3,102 +3,38 @@ [INFO] * BootLoader * [INFO] * Flash: 256KB * [INFO] * * * * * By Helei * * * * * * -[INFO] [BL] 上次复位原因: 上电 按键 -[INFO] > 固件校验通过 -[INFO] [BL] 正在跳转到 APP1 @0x08008000... -[INFO] -[INFO] * * * * * * * * * * * * * * * * * * -[INFO] * 版本: 1.5.8 (RTOS) * -[INFO] * * * * * * * By Helei * * * * -[INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 -[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=20 -[INFO] EEPROM 配置有效, Ver=20 -[INFO] > 服务器: 58.17.14.95:1880 -[INFO] > 客户端ID: 5791a8579d459290 -[INFO] > 用户名: 766990788193702677 -[INFO] > 版本序号: 20 -[INFO] > W25Q64 初始化成功, ID=0xEF4017 -[INFO] > 历史重启记录(新→旧): -[INFO] [1] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [2] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [3] 重启原因: 按键复位 运行时间: 0天00小时06分 -[INFO] [4] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [5] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [6] 重启原因: 被平台踢下线 运行时间: 0天06小时42分 -[INFO] [7] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [8] 重启原因: 串口OTA命令 运行时间: 0天01小时05分 -[INFO] [9] 重启原因: 卡死看门狗溢出 运行时间: 0天07小时41分 -[INFO] [10] 重启原因: 外部断电(法拉电容记录) 运行时间: 0天00小时00分 -[INFO] SW1:关 -[INFO] SW2:关 -[INFO] SW3:关 -[INFO] SW4:关 -[INFO] > 产品模式: 称重投料(带秤) -[INFO] > GPS 定位: 关闭(GPS0) -[INFO] > FEED: 初始化, 去皮=1.0KG, 单次投料=1.0KG -[INFO] > 电能: HLW8032 就绪 (UART5 PD2) -[INFO] > OLED: 初始化完成 -[INFO] > 4G: 初始化... -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > 4G: 网络... -[WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 8986032524791123631 -[INFO] > 4G: CGATT 已附着 -[INFO] > 4G: 信号 45% (rssi=14) -[INFO] > 4G: 网络 OK -[INFO] > 4G: MQTT... -[INFO] > 4G: MQTT OK -[INFO] > 4G: Ready -[INFO] > 4G: 首次发布成功 -[INFO] > BLE: 配置已缓存(Bt1),跳过设置 -[INFO] SW1:关(不恢复,投喂安全保护) -[INFO] SW2:关(恢复) -[INFO] SW3:关(恢复) -[INFO] SW4:关(恢复) -[INFO] > Main: MQTT Ready 后首次状态上报 -[INFO] > FEED: 首次查询已发送 -[INFO] > OTA 已确认(MQTT Ready + 首次发布成功 + 延迟9s) -[INFO] -[INFO] * * * * * * * * * * * * * * * * * * -[INFO] * BootLoader * -[INFO] * Flash: 256KB * -[INFO] * * * * * By Helei * * * * * * [INFO] [BL] 上次复位原因: 软件 [INFO] > 固件校验通过 [INFO] [BL] 正在跳转到 APP1 @0x08008000... [INFO] [INFO] * * * * * * * * * * * * * * * * * * -[INFO] * 版本: 1.5.6 (RTOS) * +[INFO] * 版本: 1.5.7 (RTOS) * [INFO] * * * * * * * By Helei * * * * [INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 -[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=20 -[INFO] > EEPROM 写入成功 -[INFO] > EEPROM 写入完成, Magic=0xDEADBE12 -[INFO] > EEPROM 回读校验 err=0, Magic=0xDEADBE12, Ver=0 -[INFO] EEPROM 配置已修复, Ver=0 +[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=1 +[INFO] EEPROM 配置有效, Ver=1 [INFO] > 服务器: 58.17.14.95:1880 [INFO] > 客户端ID: 5791a8579d459290 [INFO] > 用户名: 766990788193702677 -[INFO] > 版本序号: 0 +[INFO] > 版本序号: 1 [INFO] > W25Q64 初始化成功, ID=0xEF4017 [INFO] > 历史重启记录(新→旧): -[INFO] [1] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [2] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [3] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [4] 重启原因: 按键复位 运行时间: 0天00小时06分 -[INFO] [5] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [6] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [7] 重启原因: 被平台踢下线 运行时间: 0天06小时42分 -[INFO] [8] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [9] 重启原因: 串口OTA命令 运行时间: 0天01小时05分 -[INFO] [10] 重启原因: 卡死看门狗溢出 运行时间: 0天07小时41分 +[INFO] [1] 重启原因: 软件复位(未标记) 运行时间: 0天00小时19分 +[INFO] [2] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [3] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [4] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [5] 重启原因: OTA升级完成 运行时间: 0天00小时08分 +[INFO] [6] 重启原因: 4G初始化失败 运行时间: 0天00小时00分 +[INFO] [7] 重启原因: 被平台踢下线 运行时间: 0天00小时08分 +[INFO] [8] 重启原因: 被平台踢下线 运行时间: 0天00小时05分 +[INFO] [9] 重启原因: 串口RESET命令 运行时间: 0天00小时01分 +[INFO] [10] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 [INFO] SW1:关 [INFO] SW2:关 [INFO] SW3:关 [INFO] SW4:关 [INFO] > 产品模式: 称重投料(带秤) -[INFO] > GPS 定位: 关闭(GPS0) +[INFO] > GPS 定位: 开启 [INFO] > FEED: 初始化, 去皮=1.0KG, 单次投料=1.0KG [INFO] > 电能: HLW8032 就绪 (UART5 PD2) [INFO] > OLED: 初始化完成 @@ -107,99 +43,10 @@ [INFO] > 4G: 复位完成 [INFO] > 4G: 网络... [WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 8986032524791123631 -[INFO] > 4G: CGATT 未附着,重试 3/30 -[INFO] > 4G: CGATT 未附着,重试 6/30 -[INFO] > 4G: CGATT 未附着,重试 9/30 -[INFO] > 4G: CGATT 未附着,重试 12/30 -[INFO] > 4G: CGATT 未附着,重试 15/30 -[INFO] > 4G: CGATT 未附着,重试 18/30 -[INFO] > 4G: CGATT 未附着,重试 21/30 -[INFO] > 4G: CGATT 未附着,重试 24/30 -[INFO] > 4G: CGATT 未附着,重试 27/30 -[INFO] > 4G: CGATT 未附着,重试 30/30 -[WARN] > 4G: CGATT 附着超时 -[WARN] > 4G: 网络失败,重试 2 -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > 4G: 网络... -[WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 8986032524791123631 -[INFO] > 4G: PDN 已激活 -[INFO] > 4G: 信号 51% (rssi=16) -[INFO] > 4G: 网络 OK -[INFO] > 4G: MQTT... -[INFO] -[INFO] * * * * * * * * * * * * * * * * * * -[INFO] * BootLoader * -[INFO] * Flash: 256KB * -[INFO] * * * * * By Helei * * * * * * -[INFO] [BL] 上次复位原因: 软件 -[INFO] > 固件校验通过 -[INFO] [BL] 正在跳转到 APP1 @0x08008000... -[INFO] -[INFO] * * * * * * * * * * * * * * * * * * -[INFO] * 版本: 1.5.6 (RTOS) * -[INFO] * * * * * * * By Helei * * * * -[INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 -[INFO] > EEPROM 读取 err=0, Magic=0xDEADBE12, Ver=0 -[INFO] > EEPROM 写入成功 -[INFO] > EEPROM 写入完成, Magic=0xDEADBEEF -[INFO] > EEPROM 回读校验 err=0, Magic=0xDEADBEEF, Ver=0 -[INFO] EEPROM 配置已修复, Ver=0 -[INFO] > 服务器: 58.17.14.95:1880 -[INFO] > 客户端ID: 5791a8579d459290 -[INFO] > 用户名: 766990788193702677 -[INFO] > 版本序号: 0 -[INFO] > W25Q64 初始化成功, ID=0xEF4017 -[INFO] > 历史重启记录(新→旧): -[INFO] [1] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [2] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [3] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [4] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [5] 重启原因: 按键复位 运行时间: 0天00小时06分 -[INFO] [6] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [7] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [8] 重启原因: 被平台踢下线 运行时间: 0天06小时42分 -[INFO] [9] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [10] 重启原因: 串口OTA命令 运行时间: 0天01小时05分 -[INFO] SW1:关 -[INFO] SW2:关 -[INFO] SW3:关 -[INFO] SW4:关 -[INFO] > 产品模式: 称重投料(带秤) -[INFO] > GPS 定位: 关闭(GPS0) -[INFO] > FEED: 初始化, 去皮=1.0KG, 单次投料=1.0KG -[INFO] > 电能: HLW8032 就绪 (UART5 PD2) -[INFO] > OLED: 初始化完成 -[INFO] > 4G: 初始化... -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > 4G: 网络... -[WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 8986032524791123631 -[INFO] > 4G: PDN 已激活 -[INFO] > 4G: 信号 51% (rssi=16) -[INFO] > 4G: 网络 OK -[INFO] > 4G: MQTT... -[WARN] > 4G: TCP 连接超时,last[6]: -OK - -[WARN] > AT 超时 [r1]: AT+MSUB="/iot/data/down/5791a8579d459290",0 -[WARN] > 4G: MSUB 失败,buff[21]: -+CME ERROR: 767 - - -[WARN] > 4G: MQTT 失败,重试 2 -[WARN] > AT 超时 [r1]: AT+MDISCONNECT -[WARN] > AT 超时 [r1]: AT+MIPSTOP -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > 4G: 网络... -[WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 8986032524791123631 +[INFO] > 4G: ICCID 89860325247911236319 [INFO] > 4G: CGATT 已附着 -[INFO] > 4G: 信号 45% (rssi=14) +[INFO] > 4G: 信号 67% (rssi=21) +[INFO] > 4G: GNSS 已开启 [INFO] > 4G: 网络 OK [INFO] > 4G: MQTT... [INFO] > 4G: MQTT OK @@ -214,151 +61,47 @@ OK [INFO] > FEED: 首次查询已发送 [INFO] > OTA 已确认(MQTT Ready + 首次发布成功 + 延迟9s) [INFO] > 运行时间: 0天--00小时--01分钟 +[INFO] > GPS: 未定位(run=1 fix=0),跳过 [INFO] > 运行时间: 0天--00小时--02分钟 [INFO] > 运行时间: 0天--00小时--03分钟 -[INFO] > MQTT: -+MSUB: "/iot/data/down/5791a8579d459290",174 byte,{"id":"f780b84564dd993c","header":"iot.ota.upgrade.post","body":{"crc16":"dcb0","ver":1,"url":"http://58.17.14.95:81/ota/pull/996026e2519054b0.bin", -[INFO] > OTA 升级命令! -[INFO] > OTA 版本: 当前=0, 新版本=1, crc16=0xDCB0 -[INFO] > OTA 下载地址: http://58.17.14.95:81/ota/pull/996026e2519054b0.bin -[INFO] > OTA: 58.17.14.95:81/ota/pull/996026e2519054b0.bin -[INFO] > OTA: 进入 -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > OTA: 网络... -[INFO] > OTA: 第二次 AT 测试 -[INFO] > OTA: 第二次 AT 成功 -[INFO] > OTA: 等待网络附着... -[INFO] > 4G: CGATT 已附着 -[INFO] > SAPBR... -[INFO] > OTA: MQTT 就绪 -[INFO] > HTTP: http://58.17.14.95:81/ota/pull/996026e2519054b0.bin -[INFO] > HEAD... -[INFO] > 大小=81156B -[INFO] ************************************** -[INFO] * OTA 升级开始 * -[INFO] * 大小: 81156 字节 * -[INFO] ************************************** -[INFO] > 正在擦除 W25Q64 新槽位... -[INFO] > W25Q64 新槽位擦除完成 -[INFO] [下载] 开始 >>> -[INFO] > DL 偏移=0 -[INFO] > [ 3%] 3072/81156B -[INFO] > DL 偏移=3072 -[INFO] > [ 7%] 6144/81156B -[INFO] > DL 偏移=6144 -[INFO] > [ 11%] 9216/81156B -[INFO] > DL 偏移=9216 -[INFO] > [ 15%] 12288/81156B -[INFO] > DL 偏移=12288 -[INFO] > [ 18%] 15360/81156B -[INFO] > DL 偏移=15360 -[INFO] > [ 22%] 18432/81156B -[INFO] > DL 偏移=18432 -[INFO] > [ 26%] 21504/81156B -[INFO] > DL 偏移=21504 -[INFO] > [ 30%] 24576/81156B -[INFO] > DL 偏移=24576 -[INFO] > [ 34%] 27648/81156B -[INFO] > DL 偏移=27648 -[INFO] > [ 37%] 30720/81156B -[INFO] > DL 偏移=30720 -[INFO] > [ 41%] 33792/81156B -[INFO] > DL 偏移=33792 -[INFO] > [ 45%] 36864/81156B -[INFO] > DL 偏移=36864 -[INFO] > [ 49%] 39936/81156B -[INFO] > DL 偏移=39936 -[INFO] > [ 52%] 43008/81156B -[INFO] > DL 偏移=43008 -[INFO] > [ 56%] 46080/81156B -[INFO] > DL 偏移=46080 -[INFO] > [ 60%] 49152/81156B -[INFO] > DL 偏移=49152 -[INFO] > [ 64%] 52224/81156B -[INFO] > DL 偏移=52224 -[INFO] > [ 68%] 55296/81156B -[INFO] > DL 偏移=55296 -[INFO] > [ 71%] 58368/81156B -[INFO] > DL 偏移=58368 -[INFO] > [ 75%] 61440/81156B -[INFO] > DL 偏移=61440 -[INFO] > [ 79%] 64512/81156B -[INFO] > DL 偏移=64512 -[INFO] > [ 83%] 67584/81156B -[INFO] > DL 偏移=67584 -[INFO] > [ 87%] 70656/81156B -[INFO] > DL 偏移=70656 -[INFO] > [ 90%] 73728/81156B -[INFO] > DL 偏移=73728 -[INFO] > [ 94%] 76800/81156B -[INFO] > DL 偏移=76800 -[INFO] > [ 98%] 79872/81156B -[INFO] > DL 偏移=79872 -[INFO] > [100%] 81156/81156B -[INFO] > W25Q64 CRC16=0xDCB0 (服务器=0xDCB0) -[INFO] >>> 校验 81156B... -[INFO] [ OK ] 固件校验通过! -[INFO] ************************************** -[INFO] * OTA 下载完成! * -[INFO] * 正在重启进入 BootLoader... * -[INFO] ************************************** -[WARN] > AT 超时 [r3]: AT+MPUB="/iot/data/up/5791a8579d459290",0,0,"{\22header\22:\22iot.ota.result.post\22,\22body\22:{\22id\22:\22f780b84564dd993c\22,\22success\22:true}}" -[WARN] > AT 超时 [r2]: AT+MPUB="/iot/data/up/5791a8579d459290",0,0,"{\22header\22:\22iot.ota.result.post\22,\22body\22:{\22id\22:\22f780b84564dd993c\22,\22success\22:true}}" -[WARN] > AT 超时 [r1]: AT+MPUB="/iot/data/up/5791a8579d459290",0,0,"{\22header\22:\22iot.ota.result.post\22,\22body\22:{\22id\22:\22f780b84564dd993c\22,\22success\22:true}}" -[WARN] > OTA 结果上报失败(重试 3 次无 OK) +[INFO] > 运行时间: 0天--00小时--04分钟 [INFO] [INFO] * * * * * * * * * * * * * * * * * * [INFO] * BootLoader * [INFO] * Flash: 256KB * [INFO] * * * * * By Helei * * * * * * -[INFO] [BL] 上次复位原因: 软件 -[INFO] [BL] 外部 Flash 中有新固件:ver=1 size=81156 crc=0xDCB0 +[INFO] [BL] 上次复位原因: 上电 按键 [INFO] > 固件校验通过 -[INFO] [BL] 擦除备份槽... -[INFO] [BL] 备份 APP1 -> 外部 Flash 0x000000,大小=229376 -[INFO] [BL] 备份完成,crc=0x3567 -[INFO] [BL] 正在更新 APP1... -[INFO] > 擦除 112 页,起始地址 0x8008000... -[INFO] > 擦除完成(112 页) -[INFO] [BL] 拷贝外部 Flash 0x040000 -> APP1 0x08008000,大小=81156 -[INFO] > 进度: 16/79 KB (20%) -[INFO] > 进度: 32/79 KB (40%) -[INFO] > 进度: 48/79 KB (60%) -[INFO] > 进度: 64/79 KB (80%) -[INFO] [ OK ] 拷贝完成 -[INFO] > 固件校验通过 -[INFO] [BL] APP1 更新成功,crc=0xDCB0,跳转运行 [INFO] [BL] 正在跳转到 APP1 @0x08008000... [INFO] [INFO] * * * * * * * * * * * * * * * * * * -[INFO] * 版本: 1.5.6 (RTOS) * +[INFO] * 版本: 1.5.7 (RTOS) * [INFO] * * * * * * * By Helei * * * * [INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 -[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=0 -[INFO] EEPROM 配置有效, Ver=0 +[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=1 +[INFO] EEPROM 配置有效, Ver=1 [INFO] > 服务器: 58.17.14.95:1880 [INFO] > 客户端ID: 5791a8579d459290 [INFO] > 用户名: 766990788193702677 -[INFO] > 版本序号: 0 +[INFO] > 版本序号: 1 [INFO] > W25Q64 初始化成功, ID=0xEF4017 [INFO] > 历史重启记录(新→旧): -[INFO] [1] 重启原因: OTA升级完成 运行时间: 0天00小时03分 -[INFO] [2] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [3] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [4] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [5] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [6] 重启原因: 按键复位 运行时间: 0天00小时06分 -[INFO] [7] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [8] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [9] 重启原因: 被平台踢下线 运行时间: 0天06小时42分 -[INFO] [10] 重启原因: 按键复位 运行时间: 0天00小时00分 +[INFO] [1] 重启原因: 按键复位 运行时间: 0天00小时00分 +[INFO] [2] 重启原因: 软件复位(未标记) 运行时间: 0天00小时19分 +[INFO] [3] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [4] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [5] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [6] 重启原因: OTA升级完成 运行时间: 0天00小时08分 +[INFO] [7] 重启原因: 4G初始化失败 运行时间: 0天00小时00分 +[INFO] [8] 重启原因: 被平台踢下线 运行时间: 0天00小时08分 +[INFO] [9] 重启原因: 被平台踢下线 运行时间: 0天00小时05分 +[INFO] [10] 重启原因: 串口RESET命令 运行时间: 0天00小时01分 [INFO] SW1:关 [INFO] SW2:关 [INFO] SW3:关 [INFO] SW4:关 [INFO] > 产品模式: 称重投料(带秤) -[INFO] > GPS 定位: 关闭(GPS0) +[INFO] > GPS 定位: 开启 [INFO] > FEED: 初始化, 去皮=1.0KG, 单次投料=1.0KG [INFO] > 电能: HLW8032 就绪 (UART5 PD2) [INFO] > OLED: 初始化完成 @@ -369,7 +112,8 @@ OK [WARN] > AT 超时 [r1]: AT [INFO] > 4G: ICCID 89860325247911236319 [INFO] > 4G: CGATT 已附着 -[INFO] > 4G: 信号 48% (rssi=15) +[INFO] > 4G: 信号 58% (rssi=18) +[INFO] > 4G: GNSS 已开启 [INFO] > 4G: 网络 OK [INFO] > 4G: MQTT... [INFO] > 4G: MQTT OK @@ -382,44 +126,156 @@ OK [INFO] SW4:关(恢复) [INFO] > Main: MQTT Ready 后首次状态上报 [INFO] > FEED: 首次查询已发送 +[INFO] > OTA 已确认(MQTT Ready + 首次发布成功 + 延迟9s) +[INFO] > 运行时间: 0天--00小时--01分钟 +[INFO] > GPS: 未定位(run=1 fix=0),跳过 +[INFO] > 运行时间: 0天--00小时--02分钟 +[INFO] > 运行时间: 0天--00小时--03分钟 +[INFO] > 运行时间: 0天--00小时--04分钟 +[INFO] > 运行时间: 0天--00小时--05分钟 +[INFO] > 运行时间: 0天--00小时--06分钟 +[INFO] > GPS: 未定位(run=1 fix=0),跳过 +[INFO] > 运行时间: 0天--00小时--07分钟 +[INFO] > MQTT: ++MSUB: "/iot/data/down/5791a8579d459290",174 byte,{"id":"96a459ebd6d35334","header":"iot.ota.upgrade.post","body":{"crc16":"e786","ver":2,"url":"http://58.17.14.95:81/ota/pull/6d342f16358716a6.bin", +[INFO] > OTA 升级命令! +[INFO] > OTA 版本: 当前=1, 新版本=2, crc16=0xE786 +[INFO] > OTA 下载地址: http://58.17.14.95:81/ota/pull/6d342f16358716a6.bin +[INFO] > OTA: 58.17.14.95:81/ota/pull/6d342f16358716a6.bin +[INFO] > OTA: 进入 +[INFO] > 4G: 复位... +[INFO] > 4G: 复位完成 +[INFO] > OTA: 网络... +[INFO] > OTA: 第二次 AT 测试 +[INFO] > OTA: 第二次 AT 成功 +[INFO] > OTA: 等待网络附着... +[INFO] > 4G: CGATT 已附着 +[INFO] > SAPBR... +[INFO] > OTA: MQTT 就绪 +[INFO] > HTTP: http://58.17.14.95:81/ota/pull/6d342f16358716a6.bin +[INFO] > HEAD... +[INFO] > 大小=81292B +[INFO] ************************************** +[INFO] * OTA 升级开始 * +[INFO] * 大小: 81292 字节 * +[INFO] ************************************** +[INFO] > 正在擦除 W25Q64 新槽位... +[INFO] > W25Q64 新槽位擦除完成 +[INFO] [下载] 开始 >>> +[INFO] > DL 偏移=0 +[INFO] > [ 3%] 3072/81292B +[INFO] > DL 偏移=3072 +[INFO] > [ 7%] 6144/81292B +[INFO] > DL 偏移=6144 +[INFO] > [ 11%] 9216/81292B +[INFO] > DL 偏移=9216 +[INFO] > [ 15%] 12288/81292B +[INFO] > DL 偏移=12288 +[INFO] > [ 18%] 15360/81292B +[INFO] > DL 偏移=15360 +[INFO] > [ 22%] 18432/81292B +[INFO] > DL 偏移=18432 +[INFO] > [ 26%] 21504/81292B +[INFO] > DL 偏移=21504 +[INFO] > [ 30%] 24576/81292B +[INFO] > DL 偏移=24576 +[INFO] > [ 34%] 27648/81292B +[INFO] > DL 偏移=27648 +[INFO] > [ 37%] 30720/81292B +[INFO] > DL 偏移=30720 +[INFO] > [ 41%] 33792/81292B +[INFO] > DL 偏移=33792 +[INFO] > [ 45%] 36864/81292B +[INFO] > DL 偏移=36864 +[INFO] > [ 49%] 39936/81292B +[INFO] > DL 偏移=39936 +[INFO] > [ 52%] 43008/81292B +[INFO] > DL 偏移=43008 +[INFO] > [ 56%] 46080/81292B +[INFO] > DL 偏移=46080 +[INFO] > [ 60%] 49152/81292B +[INFO] > DL 偏移=49152 +[INFO] > [ 64%] 52224/81292B +[INFO] > DL 偏移=52224 +[INFO] > [ 68%] 55296/81292B +[INFO] > DL 偏移=55296 +[INFO] > [ 71%] 58368/81292B +[INFO] > DL 偏移=58368 +[INFO] > [ 75%] 61440/81292B +[INFO] > DL 偏移=61440 +[INFO] > [ 79%] 64512/81292B +[INFO] > DL 偏移=64512 +[INFO] > [ 83%] 67584/81292B +[INFO] > DL 偏移=67584 +[INFO] > [ 86%] 70656/81292B +[INFO] > DL 偏移=70656 +[INFO] > [ 90%] 73728/81292B +[INFO] > DL 偏移=73728 +[INFO] > [ 94%] 76800/81292B +[INFO] > DL 偏移=76800 +[INFO] > [ 98%] 79872/81292B +[INFO] > DL 偏移=79872 +[INFO] > [100%] 81292/81292B +[INFO] > W25Q64 CRC16=0xE786 (服务器=0xE786) +[INFO] >>> 校验 81292B... +[INFO] [ OK ] 固件校验通过! +[INFO] ************************************** +[INFO] * OTA 下载完成! * +[INFO] * 正在重启进入 BootLoader... * +[INFO] ************************************** +[INFO] > OTA 结果已发送(不等OK): success=1 [INFO] [INFO] * * * * * * * * * * * * * * * * * * [INFO] * BootLoader * [INFO] * Flash: 256KB * [INFO] * * * * * By Helei * * * * * * -[INFO] [BL] 上次复位原因: IWDG看门狗 -[WARN] [BL] APP 卡死(看门狗复位),试错次数=1 +[INFO] [BL] 上次复位原因: 软件 +[INFO] [BL] 外部 Flash 中有新固件:ver=2 size=81292 crc=0xE786 [INFO] > 固件校验通过 +[INFO] [BL] 擦除备份槽... +[INFO] [BL] 备份 APP1 -> 外部 Flash 0x000000,大小=229376 +[INFO] [BL] 备份完成,crc=0xC6DC +[INFO] [BL] 正在更新 APP1... +[INFO] > 擦除 112 页,起始地址 0x8008000... +[INFO] > 擦除完成(112 页) +[INFO] [BL] 拷贝外部 Flash 0x040000 -> APP1 0x08008000,大小=81292 +[INFO] > 进度: 16/79 KB (20%) +[INFO] > 进度: 32/79 KB (40%) +[INFO] > 进度: 48/79 KB (60%) +[INFO] > 进度: 64/79 KB (80%) +[INFO] [ OK ] 拷贝完成 +[INFO] > 固件校验通过 +[INFO] [BL] APP1 更新成功,crc=0xE786,跳转运行 [INFO] [BL] 正在跳转到 APP1 @0x08008000... [INFO] [INFO] * * * * * * * * * * * * * * * * * * -[INFO] * 版本: 1.5.6 (RTOS) * +[INFO] * 版本: 1.5.8 (RTOS) * [INFO] * * * * * * * By Helei * * * * [INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 -[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=0 -[INFO] EEPROM 配置有效, Ver=0 +[INFO] > EEPROM 读取 err=0, Magic=0xDEADBEEF, Ver=1 +[INFO] EEPROM 配置有效, Ver=1 [INFO] > 服务器: 58.17.14.95:1880 [INFO] > 客户端ID: 5791a8579d459290 [INFO] > 用户名: 766990788193702677 -[INFO] > 版本序号: 0 +[INFO] > 版本序号: 1 [INFO] > W25Q64 初始化成功, ID=0xEF4017 [INFO] > 历史重启记录(新→旧): -[INFO] [1] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 -[INFO] [2] 重启原因: OTA升级完成 运行时间: 0天00小时03分 -[INFO] [3] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [4] 重启原因: 软件复位(未标记) 运行时间: 0天00小时00分 -[INFO] [5] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [6] 重启原因: 按键复位 运行时间: 0天00小时00分 -[INFO] [7] 重启原因: 按键复位 运行时间: 0天00小时06分 -[INFO] [8] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [9] 重启原因: 被平台踢下线 运行时间: 0天00小时03分 -[INFO] [10] 重启原因: 被平台踢下线 运行时间: 0天06小时42分 +[INFO] [1] 重启原因: OTA升级完成 运行时间: 0天00小时07分 +[INFO] [2] 重启原因: 按键复位 运行时间: 0天00小时00分 +[INFO] [3] 重启原因: 软件复位(未标记) 运行时间: 0天00小时19分 +[INFO] [4] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [5] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [6] 重启原因: 卡死看门狗溢出 运行时间: 0天00小时00分 +[INFO] [7] 重启原因: OTA升级完成 运行时间: 0天00小时08分 +[INFO] [8] 重启原因: 4G初始化失败 运行时间: 0天00小时00分 +[INFO] [9] 重启原因: 被平台踢下线 运行时间: 0天00小时08分 +[INFO] [10] 重启原因: 被平台踢下线 运行时间: 0天00小时05分 [INFO] SW1:关 [INFO] SW2:关 [INFO] SW3:关 [INFO] SW4:关 [INFO] > 产品模式: 称重投料(带秤) -[INFO] > GPS 定位: 关闭(GPS0) +[INFO] > GPS 定位: 开启 [INFO] > FEED: 初始化, 去皮=1.0KG, 单次投料=1.0KG [INFO] > 电能: HLW8032 就绪 (UART5 PD2) [INFO] > OLED: 初始化完成 @@ -429,25 +285,9 @@ OK [INFO] > 4G: 网络... [WARN] > AT 超时 [r1]: AT [INFO] > 4G: ICCID 89860325247911236319 -[INFO] > 4G: CGATT 未附着,重试 3/30 -[INFO] > 4G: CGATT 未附着,重试 6/30 -[INFO] > 4G: CGATT 未附着,重试 9/30 -[INFO] > 4G: CGATT 未附着,重试 12/30 -[INFO] > 4G: CGATT 未附着,重试 15/30 -[INFO] > 4G: CGATT 未附着,重试 18/30 -[INFO] > 4G: CGATT 未附着,重试 21/30 -[INFO] > 4G: CGATT 未附着,重试 24/30 -[INFO] > 4G: CGATT 未附着,重试 27/30 -[INFO] > 4G: CGATT 未附着,重试 30/30 -[WARN] > 4G: CGATT 附着超时 -[WARN] > 4G: 网络失败,重试 2 -[INFO] > 4G: 复位... -[INFO] > 4G: 复位完成 -[INFO] > 4G: 网络... -[WARN] > AT 超时 [r1]: AT -[INFO] > 4G: ICCID 89860325247911236319 [INFO] > 4G: PDN 已激活 -[INFO] > 4G: 信号 38% (rssi=12) +[INFO] > 4G: 信号 61% (rssi=19) +[INFO] > 4G: GNSS 已开启 [INFO] > 4G: 网络 OK [INFO] > 4G: MQTT... [INFO] > 4G: MQTT OK @@ -461,7 +301,9 @@ OK [INFO] > Main: MQTT Ready 后首次状态上报 [INFO] > FEED: 首次查询已发送 [INFO] > EEPROM 写入成功 -[INFO] > OTA 版本已保存并校验: 1 +[INFO] > OTA 版本已保存并校验: 2 [INFO] > OTA 确认标志已写入 [INFO] > OTA 结果已上报: success=1 [INFO] > OTA 已确认(MQTT Ready + 首次发布成功 + 延迟9s) +[INFO] > 运行时间: 0天--00小时--01分钟 +[INFO] > GPS: 未定位(run=1 fix=0),跳过 diff --git a/V1.5/鐗堟湰璇存槑.md b/V1.5/鐗堟湰璇存槑.md index e538f03..364ab19 100644 --- a/V1.5/鐗堟湰璇存槑.md +++ b/V1.5/鐗堟湰璇存槑.md @@ -155,3 +155,7 @@ 鍒囨崲鑷姩閲嶅惎鐢熸晥锛涘師 5 澶 #if 缂栬瘧鍒嗘敮鏀硅繍琛屾椂鍒ゆ柇锛圙NSS 鍒濆鍖/GPS 杞锛 - OTA 閫氱煡閾剧悊椤猴細涓嬭浇瀹屾垚鍚庣殑 result.post(success) 鏀逛负鍙戜簡灏辫蛋涓嶇瓑 OK锛堜笅杞藉悗 MQTT 浼氳瘽鍙兘鍍垫锛 绛 OK 鐧藉崱 12s 涓斿彂涓嶅嚭锛夛紱骞冲彴浠ラ噸鍚悗鐨 confirm.post锛堢瓑 OK+30s 閲嶈瘯蹇呰揪锛変负鏉冨▉鎴愬姛淇″彿 +- OTA 闂幆淇锛歐25Q64 OTA 淇℃伅缁撴瀯鏂板 ota_id锛堝钩鍙颁换鍔 id 闅忓浐浠朵俊鎭惤鐩橈級锛屾柊鍥轰欢棣栧惎纭鏃 + 鍦ㄥ彲闈犺繛鎺ヤ笂琛ュ彂 result.post(success=1, 浠诲姟id) + confirm.post鈥斺斿钩鍙"瀹屾垚"鏍囧織鍙甯搁棴鐜 +- 娉ㄦ剰锛歄TA 淇℃伅缁撴瀯鍙樺寲锛孊ootLoader 鐨 w25q64.h 宸插悓姝ワ紝**闇 J-Link 鍒蜂竴娆℃柊 BL** + 锛堟棫 BL 璇讳笉浜嗘柊鏍煎紡锛屼細璁や笉鍑哄緟瀹夎鍥轰欢锛