使用wchnet和cjson,發(fā)現(xiàn)cjson中調(diào)用malloc返回總是0地址,考慮是不是堆內(nèi)存不夠了?
應(yīng)該就是堆太小了吧,cJSON_Print中malloc默認(rèn)256,改為16以后malloc成功,若為32都分配不成功,默認(rèn)heap大小怎么改呢?
修改 flash的配置改為 192k+128K這樣的配置,默認(rèn)堆棧是不是都能多一些?
修改以后,是不是還需要手動修改Link.ld?
您好,ld鏈接腳本中,沒有明確定義heap堆的大小,按照其定義,動態(tài)數(shù)據(jù)段,除了stack占用的,剩下的都可用于heap,通過malloc進行動態(tài)管理。關(guān)于FLASH和RAM的大小修改,需要手動修改ld文件中FLASH和RAM的大小,改為192+128,然后通過WCHISPTool工具選擇192+128分配方式進行下載。WCHISPTool工具下載鏈接如下:
http://www.findthetime.net/downloads/WCHISPTool_Setup_exe.html?
請問下,在程序運行時,怎么查看ram和flash運行情況?
您好,若你是指查看FLASH、RAM占用情況,在MounRiver編譯后可查看占用信息,可以按下面鏈接內(nèi)容參考配置一下
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