[其他ST产品] JSON C 库在 RTOS 中不起作用。

[复制链接]
528|8
 楼主| yunfu1117 发表于 2025-4-14 09:00 | 显示全部楼层 |阅读模式
在 stm32cubeide 中开发 json-c 和 cJSON 库,在没有 RTOS 的情况下能正常工作。但是当我切换到 RTOS 时,两个库都不起作用。并且提示不同的错误。
json-c :- 当我调用“json_object_object_add”函数时,程序卡在 syscall.c 中_exit Status 时。
cJSON :- 没有卡在任何地方,但无法创建任何对象。显示 null 对象。

jcky001 发表于 2025-4-14 15:23 | 显示全部楼层
json-c 库在裸机环境中可能没有正确处理错误路径。检查内存分配。
elephant00 发表于 2025-4-14 15:24 | 显示全部楼层
检查 cJSON_CreateObject() 调用是否返回 NULL。
cr315 发表于 2025-4-14 18:00 | 显示全部楼层
修改 json-c 的源代码,避免在错误路径中调用 _exit()。
两只袜子 发表于 2025-4-14 18:23 | 显示全部楼层
如果堆内存不足,可以考虑使用静态内存分配或内存池来管理 cJSON 对象。
laocuo1142 发表于 2025-4-14 19:00 | 显示全部楼层
如果 json-c 或 cJSON 支持调试日志,启用日志记录以帮助定位问题。
powerantone 发表于 2025-4-14 21:00 | 显示全部楼层
检查库的线程安全性或者实现适当的同步机制。
stormwind123 发表于 2025-4-14 21:23 | 显示全部楼层
用最新版本的 json-c 和 cJSON 库。
probedog 发表于 2025-4-14 22:00 | 显示全部楼层
可以考虑使用其他更轻量级或更适合 RTOS 环境的 JSON 库,如 parson 或 Jansson。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

61

帖子

0

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