fix(iot_mqtt): g_iot_socket 未初始化导致 WCHNET_SocketSend(0xFF) 硬故障重启

根因: iot_mqtt_srv.c 中 g_iot_socket 初始化为 0xFF,
仅 iot_connect_broker() 中设为 SocketId_TCP.
但内联 MQTT 模式(iot_mqtt_poll 从未调用)下该赋值永不执行.
iot_mqtt_publish_sensor() 调用 iot_mqtt_send() →
WCHNET_SocketSend(0xFF, ...) → HardFault → 设备重启.

修复: iot_mqtt_init() 中设置 g_iot_socket = SocketId_TCP,
该函数在 net_srv_init() flag==1 时被调用(含首次启动和每次重连).
This commit is contained in:
wangfq
2026-07-08 09:11:23 +08:00
parent 0e116c2d31
commit 555cdb741d
@@ -587,6 +587,9 @@ void iot_mqtt_poll(void) {
* 初始化
*===========================================================================*/
void iot_mqtt_init(void) {
/* 复用 net_srv.c 创建的 MQTT socket (SocketId_TCP) */
g_iot_socket = SocketId_TCP;
/* 初始化设备序列码 (12 hex chars) */
snprintf(g_iot_dev_serial, sizeof(g_iot_dev_serial),
"%02X%02X%02X%02X%02X%02X",