root cause: iot_mqtt_send() 声明 uint16_t slen = len, 传给 WCHNET_SocketSend(..., uint32_t *len) 时取址 &slen。 WCHNET 写 4 字节返回值到 2 字节栈变量 → 破坏相邻栈内容 (返回地址/帧指针) → 函数返回时 hard fault 重启 fix: slen 改为 uint32_t
root cause: iot_mqtt_send() 声明 uint16_t slen = len, 传给 WCHNET_SocketSend(..., uint32_t *len) 时取址 &slen。 WCHNET 写 4 字节返回值到 2 字节栈变量 → 破坏相邻栈内容 (返回地址/帧指针) → 函数返回时 hard fault 重启 fix: slen 改为 uint32_t