17
2020
05

stm32中用cjson的内存问题

这个问题,我改了几天的bug,原来是 分配给json的内存少了,因为我发现代码cJSON_CreateObject()在创建对象之后就没反应了,问了博主说是内存的问题,然后到网上找果然也有人出现这些问题,所以只需要把分配的内存改大了就没事了,在启动文件里面找到Heap_Size然后把他改大,我用的是原子的代码,原本是写着0x200,后面改成0xC00还是不行,就怀疑是不是不是内存的问题,最后看了很多文章,他们都改成0x1000,然后就可以了,如果你写cjson内容(键值)比较多的话,如果出现问题应该把内存改的比这个更大批注 2020-05-17 180829.png

然后看了那么多文章,他们有的出现bug是因为没有释放内存导致,就是free(xx),要释放内存,还是出现bug的话得把cjson.c里面的malloc和free改成开发板自带的;上面这两个我都改过,因为我是原子的板子,他自带的malloc和free函数的参数有两个,其中一个的话要知道自己所用到的内存块,但是cjson.c的malloc和free只有一个参数,所以改起来很难,所以就放弃了批注 2020-05-17 180829.png

如果你要改的话要全部对应的改,不是只改这个地方而已


可参考本文了解内存溢出和泄漏https://blog.qiquanji.com/post/7868.html

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。