pandora开发板使用cjson,内存不足。

发布于 2020-08-12 19:39:36

{{rt-thread.map(uploading...)}}{{rt-thread.map(uploading...)}}在pandora开发板上开启wifi,mqtt客户端,将aht10数据采集后通过mqtt发送,这些没问题。但是想使用cjson去反序列化数据,增加cjson模块后keil报

.\build\keil\Obj\rt-thread.axf: Error: L6406E: No space in execution regions with .ANY selector matching usenofp.o(x$fpl$usenofp).

类似的错误,有330个,查了下说是内存不足。cjson需要很大内存么。
在没使用cjson时的heap微信图片_20200812193644.png
只跑一个cjson
微信图片_20200812193752.png
附件是map成功文件rt-thread.rar
失败fail.rar

查看更多

关注者
0
被浏览
146
CrisJay
CrisJay 认证专家 2020-08-12

看了一下题主成功的map文件,最后的统计数据如下:
image.png
可以看到总的ROM大小已经到达了508.68kB,也就是说在题主成功的状态下flash已经占用了508.68kB,而Pandora开发板的flash总大小为512kB,剩余空间也就只有3.32kB,自然就不够了。
并不是说cjson占用存储空间大,而是题主没用cjson时已经占用了99%的存储空间,必然再加一个模块就会导致存储空间不足。
题主可以开一下优化看看能否缩小代码占用空间,如果优化后仍不足那就需要手动优化了。

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友