使用wchnet和cjson,发现cjson中调用malloc返回总是0地址,考虑是不是堆内存不够了?
应该就是堆太小了吧,cJSON_Print中malloc默认256,改为16以后malloc成功,若为32都分配不成功,默认heap大小怎么改呢?
修改 flash的配置改为 192k+128K这样的配置,默认堆栈是不是都能多一些?
修改以后,是不是还需要手动修改Link.ld?
您好,ld链接脚本中,没有明确定义heap堆的大小,按照其定义,动态数据段,除了stack占用的,剩下的都可用于heap,通过malloc进行动态管理。关于FLASH和RAM的大小修改,需要手动修改ld文件中FLASH和RAM的大小,改为192+128,然后通过WCHISPTool工具选择192+128分配方式进行下载。WCHISPTool工具下载链接如下:
请问下,在程序运行时,怎么查看ram和flash运行情况?
您好,若你是指查看FLASH、RAM占用情况,在MounRiver编译后可查看占用信息,可以按下面链接内容参考配置一下
https://blog.csdn.net/qq_36353650/article/details/121923689?spm=1001.2014.3001.5501
https://blog.csdn.net/qq_36353650/article/details/121968743?spm=1001.2014.3001.5501