[STM32F1] MQTT客户端示例无法正常工作

[复制链接]
546|6
石榴大王 发表于 2025-9-13 11:54 | 显示全部楼层 |阅读模式
X-CUBE-CELLULAR 5.2.x MQTT客户端示例在使用基于GCC的STM32CubeIDE时无法正常工作。相反,X-CUBE-CELLULAR 5.2.x中IDE_Mqtt文件夹下的项目运行正常,因为使用了IAR编译器和Embedded Workbench IDE。

提供的示例代码,能够使用Stackhero Node-RED仪表板进行测试。

我花了几天时间调查仍未找到原因:在使用GCC编译器时(在复制现有STM32CubeIDE项目并添加MQTT/MBedTLS库文件和#define后),该演示在执行代码片段中的代码并通过mqtt_connect()调用时会因HardFault而崩溃。已使用ST-LINK和调试代码项目进行测试。

4G连接已成功建立,上下文CID=1启动并运行,DNS服务器名称已解析,因此调制解调器没有故障。MQTT套接字也已连接到远程服务器,但打包要传输的数据时会导致此问题。
也许在X-CUBE-CELLULAR 5.2.0版本中没有为STM32CubeIDE包含此类MQTT项目?

豌豆爹 发表于 2025-9-17 16:49 | 显示全部楼层
核心原因在于GCC与IAR编译器在内存对齐、结构体填充或库函数实现上的差异
麻花油条 发表于 2025-9-17 17:50 | 显示全部楼层
X-CUBE-CELLULAR 5.2.x的MQTT示例可能未针对GCC优化,仅在IAR环境下测试验证。
classroom 发表于 2025-9-17 18:51 | 显示全部楼层
强制内存对齐。在MQTT相关结构体定义前添加GCC对齐属性,确保与IAR一致
cr315 发表于 2025-9-17 19:52 | 显示全部楼层
替换GCC标准库函数。
duo点 发表于 2025-9-17 18:52 | 显示全部楼层
用静态内存分配。
elephant00 发表于 2025-9-17 16:53 | 显示全部楼层
看一下用的X-CUBE-CELLULAR版本是否明确支持GCC。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部