From 1a11cfce02924aedd96c30d49d90c5022963d0c1 Mon Sep 17 00:00:00 2001 From: helei Date: Wed, 19 Aug 2026 22:07:41 +0800 Subject: [PATCH] =?UTF-8?q?V1.5:=20OTA=E4=B8=8B=E8=BD=BD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=90=8E=E7=9A=84result.post=E6=94=B9=E5=8F=91=E4=BA=86?= =?UTF-8?q?=E5=B0=B1=E8=B5=B0(=E4=B8=8D=E7=AD=89OK),=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E4=BB=A5confirm.post=E4=B8=BA=E6=9D=83=E5=A8=81=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E4=BF=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- V1.5/STM32F103_App1/HardWare/CAR/air780e.c | 15 +- V1.5/STM32F103_App1/HardWare/CAR/air780e.h | 1 + V1.5/STM32F103_App1/Inc/main.h | 5 + V1.5/debug.txt | 588 +++++++++++++++------ V1.5/鐗堟湰璇存槑.md | 2 + 5 files changed, 460 insertions(+), 151 deletions(-) diff --git a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c index b2a7494..b64751e 100644 --- a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c +++ b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c @@ -460,6 +460,17 @@ static int ota_ver_save(uint16_t ver) { } /*==== MQTT Publish: OTA进度/结果上报 ====*/ +/* 结果上报的"发了就走"版本:不等 OK 不阻塞。用于下载完成后的 result.post(success), + * 平台以重启后的 confirm.post(等 OK+30s 重试)为权威成功信号 */ +void air780e_mqtt_result_nowait(const char *header, const char *ota_id, int val) { + if (!header || !ota_id || !ota_id[0]) return; + static char cmd[300]; + sprintf(cmd, "AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22%s\\22,\\22body\\22:{\\22id\\22:\\22%.16s\\22,\\22success\\22:%s}}\"", + MqttInfoStr.ClientID, header, ota_id, val ? "true" : "false"); + CAT1_printf("%s", cmd); + log_info("> OTA 结果已发送(不等OK): success=%d", val); +} + int air780e_mqtt_report(const char *header, const char *ota_id, int val) { if (!header || !ota_id || !ota_id[0]) return -1; static char cmd[300]; @@ -736,8 +747,8 @@ static void air780e_trigger_ota_body(const char *host, int port, const char *pat log_info("* OTA 下载完成! *"); log_info("* 正在重启进入 BootLoader... *"); log_info("**************************************"); - air780e_mqtt_report("iot.ota.result.post", ota_id, 1); - bg_delay(3000); /* 等待 MQTT 结果消息发送完成后再复位 */ + 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); reset_log_mark(RSN_OTA_UPDATE); diff --git a/V1.5/STM32F103_App1/HardWare/CAR/air780e.h b/V1.5/STM32F103_App1/HardWare/CAR/air780e.h index cec5ab9..0ba90ed 100644 --- a/V1.5/STM32F103_App1/HardWare/CAR/air780e.h +++ b/V1.5/STM32F103_App1/HardWare/CAR/air780e.h @@ -52,6 +52,7 @@ void air780e_init(void); void air780e_process(void); void air780e_trigger_ota(const char *host, int port, const char *path, const char *ota_id, uint16_t new_ver, uint16_t crc16); int air780e_mqtt_report(const char *header, const char *ota_id, int percent_or_success); /* 返回 0=送达 */ +void air780e_mqtt_result_nowait(const char *header, const char *ota_id, int val); /* 结果上报:发了就走不等OK */ int air780e_ota_confirm(void); /* 0=通知已送达 1=无挂起 -1=通知未送达(需重试) */ uint16_t ota_get_version(void); void CAT1_printf(const char *fmt, ...); diff --git a/V1.5/STM32F103_App1/Inc/main.h b/V1.5/STM32F103_App1/Inc/main.h index 3aab835..180730d 100644 --- a/V1.5/STM32F103_App1/Inc/main.h +++ b/V1.5/STM32F103_App1/Inc/main.h @@ -58,6 +58,11 @@ extern UART_HandleTypeDef huart3; #define MQTT_USERNAME "766990788193702677" #define MQTT_PASSWORD "6ae9622b7034326b" +////RTOS版-投料机-无蠕变磅秤-03 +//#define MQTT_CLIENT_ID "5791a8579d459290" +//#define MQTT_USERNAME "766990788193702677" +//#define MQTT_PASSWORD "5f6cd7748ec9db35" + #define MQTT_SERVER_IP "58.17.14.95" #define MQTT_SERVER_PORT 1880 #define MQTT_TOPIC "/iot/data/down/" diff --git a/V1.5/debug.txt b/V1.5/debug.txt index 4be8f83..a5c4b3b 100644 --- a/V1.5/debug.txt +++ b/V1.5/debug.txt @@ -1,177 +1,467 @@ - -[2026-08-07 14:14:16.197] -RX锛歔INFO] +[INFO] [INFO] * * * * * * * * * * * * * * * * * * [INFO] * BootLoader * [INFO] * Flash: 256KB * [INFO] * * * * * By Helei * * * * * * -[INFO] > Firmware verify OK -[INFO] [BL] Jumping to APP1 @0x08008000... +[INFO] [BL] 上次复位原因: 上电 按键 +[INFO] > 固件校验通过 +[INFO] [BL] 正在跳转到 APP1 @0x08008000... [INFO] [INFO] * * * * * * * * * * * * * * * * * * -[INFO] * Version: 1.0.2 * +[INFO] * 版本: 1.5.8 (RTOS) * [INFO] * * * * * * * By Helei * * * * -[INFO] > EEPROM probe: wr=0xA5, rd=0xA5 -[INFO] > EEPROM read err=0, Magic=0xDEADBEEF, Ver=2 -[INFO] EEPROM config valid, Ver=2 -[INFO] > Server: 58.17.14.95:1880 -[INFO] > Client: 4fbaf68ca378b72b -[INFO] > User : 698227263545354343 -[INFO] > Firmware Ver: 2 -[INFO] > W25Q64 init OK, ID=0xEF4017 -[INFO] SW1:OFF -[INFO] SW2:OFF -[INFO] SW3:OFF -[INFO] SW4:OFF -[INFO] > FEED: init, zero=1.0KG, onceWt=1.0KG -[INFO] > 4G: Init... -[INFO] > 4G: Reset... - -[2026-08-07 14:14:23.051] -RX锛歔INFO] > 4G: Reset done -[INFO] > 4G: Net... -[WARN] > AT t/o [r1]: AT -[INFO] > 4G: CGATT attached -[INFO] > 4G: Net OK +[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: first publish ok -[INFO] SW1:OFF (no restore, feeding safety) -[INFO] SW2:OFF (restore) -[INFO] SW3:OFF (restore) -[INFO] SW4:OFF (restore) -[INFO] > Main: first status report after MQTT 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] * * * * * * * 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] > 服务器: 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小时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] 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 未附着,重试 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 -[2026-08-07 14:14:24.656] -RX锛歔INFO] > MQTT: -+MSUB: "/iot/data/down/4fbaf68ca378b72b",174 byte,{"id":"4fd40dd829a90193","header":"iot.ota.upgrade.post","body":{"crc16":"e8ca","ver":3,"url":"http://58.17.14.95:81/ota/pull/a01732e48ebd9fa6.bin", -[INFO] > OTA cmd! -[INFO] > OTA ver: cur=2, new=3, crc16=0xE8CA -[INFO] > OTA url: http://58.17.14.95:81/ota/pull/a01732e48ebd9fa6.bin -[INFO] > OTA: 58.17.14.95:81/ota/pull/a01732e48ebd9fa6.bin -[INFO] > OTA: in -[INFO] > 4G: Reset... +[WARN] > AT 超时 [r1]: AT+MSUB="/iot/data/down/5791a8579d459290",0 +[WARN] > 4G: MSUB 失败,buff[21]: ++CME ERROR: 767 -[2026-08-07 14:14:39.404] -RX锛歔INFO] > 4G: Reset done -[INFO] > OTA: Net... -[INFO] > OTA: 2nd AT test -[INFO] > OTA: 2nd AT ok + +[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: 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] > 运行时间: 0天--00小时--01分钟 +[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 ready -[INFO] > HTTP: http://58.17.14.95:81/ota/pull/a01732e48ebd9fa6.bin +[INFO] > OTA: MQTT 就绪 +[INFO] > HTTP: http://58.17.14.95:81/ota/pull/996026e2519054b0.bin [INFO] > HEAD... -[INFO] > Size=40076B +[INFO] > 大小=81156B [INFO] ************************************** -[INFO] * OTA Update Start * -[INFO] * Size: 40076 bytes * +[INFO] * OTA 升级开始 * +[INFO] * 大小: 81156 字节 * [INFO] ************************************** -[INFO] > Erasing W25Q64 new slot... -[INFO] > W25Q64 new slot erased -[INFO] [Download] Start >>> -[INFO] > DL offset=0 -[INFO] > [ 7%] 3072/40076B -[INFO] > DL offset=3072 -[INFO] > [ 15%] 6144/40076B -[INFO] > DL offset=6144 -[INFO] > [ 22%] 9216/40076B -[INFO] > DL offset=9216 -[INFO] > [ 30%] 12288/40076B -[INFO] > DL offset=12288 -[INFO] > [ 38%] 15360/40076B -[INFO] > DL offset=15360 -[INFO] > [ 45%] 18432/40076B -[INFO] > DL offset=18432 -[INFO] > [ 53%] 21504/40076B -[INFO] > DL offset=21504 -[INFO] > [ 61%] 24576/40076B -[INFO] > DL offset=24576 -[INFO] > [ 68%] 27648/40076B -[INFO] > DL offset=27648 -[INFO] > [ 76%] 30720/40076B -[INFO] > DL offset=30720 -[INFO] > [ 84%] 33792/40076B -[INFO] > DL offset=33792 -[INFO] > [ 91%] 36864/40076B -[INFO] > DL offset=36864 -[INFO] > [ 99%] 39936/40076B -[INFO] > DL offset=39936 -[INFO] > [100%] 40076/40076B -[INFO] > W25Q64 CRC16=0xE8CA (server=0xE8CA) -[INFO] >>> Verify 40076B... -[INFO] [ OK ] Firmware OK! +[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 Download Complete! * -[INFO] * Rebooting to BootLoader... * +[INFO] * OTA 下载完成! * +[INFO] * 正在重启进入 BootLoader... * [INFO] ************************************** -[INFO] > OTA result reported: success=1 - -[2026-08-07 14:14:42.945] -RX锛歔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] [INFO] * * * * * * * * * * * * * * * * * * [INFO] * BootLoader * [INFO] * Flash: 256KB * [INFO] * * * * * By Helei * * * * * * -[INFO] [BL] New firmware in external: ver=3 size=40076 crc=0xE8CA -[INFO] > Firmware verify OK -[INFO] [BL] Erase backup slot... - -[2026-08-07 14:14:44.273] -RX锛歔INFO] [BL] Backup APP1 -> external 0x000000, size=229376 - -[2026-08-07 14:14:48.794] -RX锛歔INFO] [BL] Backup OK, crc=0x1071 -[INFO] [BL] Updating APP1... -[INFO] > Erasing 112 pages from 0x8008000... - -[2026-08-07 14:14:52.691] -RX锛歔INFO] > Erase OK (112 pages) -[INFO] [BL] Copy external 0x040000 -> APP1 0x08008000, size=40076 -[INFO] > Progress: 16/39 KB (40%) -[INFO] > Progress: 32/39 KB (81%) -[INFO] [ OK ] Copy done -[INFO] > Firmware verify OK -[INFO] [BL] APP1 update OK, crc=0xE8CA, jump -[INFO] [BL] Jumping to APP1 @0x08008000... +[INFO] [BL] 上次复位原因: 软件 +[INFO] [BL] 外部 Flash 中有新固件:ver=1 size=81156 crc=0xDCB0 +[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] * Version: 1.0.3 * +[INFO] * 版本: 1.5.6 (RTOS) * [INFO] * * * * * * * By Helei * * * * -[INFO] > EEPROM probe: wr=0xA5, rd=0xA5 -[INFO] > EEPROM read err=0, Magic=0xDEADBEEF, Ver=2 -[INFO] EEPROM config valid, Ver=2 -[INFO] > Server: 58.17.14.95:1880 -[INFO] > Client: 4fbaf68ca378b72b -[INFO] > User : 698227263545354343 -[INFO] > Firmware Ver: 2 -[INFO] > W25Q64 init OK, ID=0xEF4017 -[INFO] SW1:OFF -[INFO] SW2:OFF -[INFO] SW3:OFF -[INFO] SW4:OFF -[INFO] > FEED: init, zero=1.0KG, onceWt=1.0KG -[INFO] > 4G: Init... -[INFO] > 4G: Reset... - -[2026-08-07 14:14:59.563] -RX锛歔INFO] > 4G: Reset done -[INFO] > 4G: Net... -[WARN] > AT t/o [r1]: AT -[INFO] > 4G: CGATT attached -[INFO] > 4G: Net OK +[INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 +[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] 重启原因: 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] 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 89860325247911236319 +[INFO] > 4G: CGATT 已附着 +[INFO] > 4G: 信号 48% (rssi=15) +[INFO] > 4G: 网络 OK [INFO] > 4G: MQTT... [INFO] > 4G: MQTT OK [INFO] > 4G: Ready -[INFO] > 4G: first publish ok -[INFO] SW1:OFF (no restore, feeding safety) -[INFO] SW2:OFF (restore) -[INFO] SW3:OFF (restore) -[INFO] SW4:OFF (restore) -[INFO] > Main: first status report after MQTT ready - -[2026-08-07 14:15:03.029] -RX锛歔INFO] > OTA result reported: success=1 -[INFO] > EEPROM write OK -[INFO] > OTA ver saved & verified: 3 -[INFO] > OTA confirmed (MQTT ready + first publish ok + 3s delay) +[INFO] > 4G: 首次发布成功 +[INFO] > BLE: 配置已缓存(Bt1),跳过设置 +[INFO] SW1:关(不恢复,投喂安全保护) +[INFO] SW2:关(恢复) +[INFO] SW3:关(恢复) +[INFO] SW4:关(恢复) +[INFO] > Main: MQTT Ready 后首次状态上报 +[INFO] > FEED: 首次查询已发送 +[INFO] +[INFO] * * * * * * * * * * * * * * * * * * +[INFO] * BootLoader * +[INFO] * Flash: 256KB * +[INFO] * * * * * By Helei * * * * * * +[INFO] [BL] 上次复位原因: IWDG看门狗 +[WARN] [BL] APP 卡死(看门狗复位),试错次数=1 +[INFO] > 固件校验通过 +[INFO] [BL] 正在跳转到 APP1 @0x08008000... +[INFO] +[INFO] * * * * * * * * * * * * * * * * * * +[INFO] * 版本: 1.5.6 (RTOS) * +[INFO] * * * * * * * By Helei * * * * +[INFO] > EEPROM 探测: 写=0xA5, 读=0xA5 +[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] 重启原因: 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] 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 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: 网络 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] > EEPROM 写入成功 +[INFO] > OTA 版本已保存并校验: 1 +[INFO] > OTA 确认标志已写入 +[INFO] > OTA 结果已上报: success=1 +[INFO] > OTA 已确认(MQTT Ready + 首次发布成功 + 延迟9s) diff --git a/V1.5/鐗堟湰璇存槑.md b/V1.5/鐗堟湰璇存槑.md index 1e25f7f..e538f03 100644 --- a/V1.5/鐗堟湰璇存槑.md +++ b/V1.5/鐗堟湰璇存槑.md @@ -153,3 +153,5 @@ - PRODUCT_WITH_FEED_SCALE 缂栬瘧榛樿鍊兼敼涓 1锛堥粯璁ゅ甫绉わ紱EEPROM 172 绌虹櫧鏃剁敓鏁堬級 - GPS 瀹氫綅鏀硅繍琛屾椂鍙垏锛堜笌 SCALE 鍚屾満鍒讹級锛欵EPROM(173)锛岃摑鐗 GPS 鏌ヨ / GPS0 鍏 / GPS1 寮锛 鍒囨崲鑷姩閲嶅惎鐢熸晥锛涘師 5 澶 #if 缂栬瘧鍒嗘敮鏀硅繍琛屾椂鍒ゆ柇锛圙NSS 鍒濆鍖/GPS 杞锛 +- OTA 閫氱煡閾剧悊椤猴細涓嬭浇瀹屾垚鍚庣殑 result.post(success) 鏀逛负鍙戜簡灏辫蛋涓嶇瓑 OK锛堜笅杞藉悗 MQTT 浼氳瘽鍙兘鍍垫锛 + 绛 OK 鐧藉崱 12s 涓斿彂涓嶅嚭锛夛紱骞冲彴浠ラ噸鍚悗鐨 confirm.post锛堢瓑 OK+30s 閲嶈瘯蹇呰揪锛変负鏉冨▉鎴愬姛淇″彿