在DM8127平台上,L2一共256K字节,一半128K字节配置成了CACHE,另一半128K字节配置成了DSP_L2_RAM。
我想利用这128K字节的DSP_L2_RAM,所以修改了BIOS_c6xdsp.cfg文件
Program.sectMap[".internalHeap"] = "DSP_L2_RAM";改为:Program.sectMap[".internalHeap"] = "DDR3_DSP";
增加:
Program.sectMap[".internalRAM"] = "DSP_L2_RAM";
然后在我的算法代码中主要计算函数上添加:#pragma CODE_SECTION (***********, ".internalRAM")
编译成功后,查看.map文件,
name origin length used unused attr fill
———————- ——– ——— ——– ——– —- ——–
DSP_L2_RAM 10800000 00020000 000025a0 0001da60 RWIX
发现函数确实放置在片内了,在地址10800000那儿。
但是算法运行起来和没有做上面改动时一样慢。
请问是不是操作不正确,或者是还有没有考虑到的方面?
Chris Meng:
你好,
请问你的代码里面是否有使用internalHeap?你把这段区域从L2移到了DDR上。
cang_rong:
回复 Chris Meng:
有.internalHeap,挪到了DDR上。
Program.sectMap[".internalHeap"] = "DSP_L2_RAM"; 改为: Program.sectMap[".internalHeap"] = "DDR3_DSP";
cang_rong:
回复 cang_rong:
我重新做了这个实验,将数据DATA_SECTION到片内,算法运行速度才快了一些。
这么说在DM8127平台上单纯的CODE_SECTION到片内没有作用?