R128S2的内存不够用了
-
在集成自身应用接口后,内存仅剩余不到3M
以下是free命令查看后的内存分布
lpsram Heap: Total Size : 3746704 Bytes ( 3658 KB) Free : 2891536 Bytes ( 2823 KB) Min Free : 2778336 Bytes ( 2713 KB)
在SDK根目录下输入kmap命令,可以知道当前运行在psram上的代码量,有2.5M保存在了psram上。
|===========================================================================| | TOTAL (bytes) | 2544907 | 1222989 | 2545435 | | MEM LIMIT | 6291456 | 16777216 | 16777216 | | MEM LEFT | 3746549 | 15554227 | 14231781 | |===========================================================================|
系统上电,包括已经创建的任务,消耗了大约700K内存,综合起来一共消耗了大约3.2M内存。
-
R128支持nor-flash,代码可以放在xip运行,保存在xip的方法可以看到对应工程下的xip.lds.S。
或者可以将dsp占用的8Mhpsram转移部分给C906使用,在dsp代码量不大的情况下,例如把dsp的内存裁剪到4M后,参照以下步骤把4M hpsram分给C906
打开C906的menuconfig
1)使能CONFIG_HEAP_MULTIPLE宏,令C906可以同时使用多个内存堆;
2)使能CONFIG_DEFAULT_LPSRAM_HEAP,CONFIG_LPSRAM_HEAP 宏,配置默认内存堆为lpsram;
3)使能CONFIG_LPSRAM_HEAP_DYNAMIC_ADDR宏,意思是lpsram的内存是动态分布的;
4)配置CONFIG_LPSRAM_HEAP_SIZE的大小是0x600000,因为前面2M给M33使用,所以剩下6M;
5)使能CONFIG_HPSRAM_HEAP宏,使能HPSRAM
6)配置CONFIG_HPSRAM_HEAP_START_ADDR为0xc400000,0xc000000是Hpsram的开始地址,前面4M已经分配给dsp使用;
7)配置CONFIG_HPSRAM_HEAP_SIZE为0x400000,意思是可以用的hpsram大小是4M。其中LPSRAM和HPSRAM的配置也可以考虑互换。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号