[c6xdsp ] pAlgObj->algMem.size=0x2800000
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
MAR修改的是哪个部分DSP要被cache。
如果你要修改DSP L2多少配置为cache,多少配置为L2,请修改bld文件的l2Mode。更多信息请参考:https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/148099/535435#535435。
我的DSP算法缓存是放在ALLOC,recBuf1 addr = 0xbc100000
是属于var SR2_FRAME_BUFFER_SIZE = 145*MB; 里面间,想开启DSP的cache.
这个https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/148099/535435#535435。跟DM8127 RDK3.5版本一样
这个dspsubsys.xs找不到
跟 l2Mode:"128k"配置文件有好几地方不知道修哪个地方?
Lu,
给你的论坛讨论是基于EZSDK,不是RDK,原理是一样的,代码是不同的。你应该修改的是bld文件,例如ipnc_mcfw\mcfw\src_bios6\cfg\ti814x\config_512M.bld.
我有改过这个文件,我再试下,原来128k改为256k,
make -s sys
编译后还是出现
js: "/usr/local/dm81xx/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
make[3]: *** [xdc_configuro] Error 1
make[2]: *** [apps] Error 2
make[1]: *** [mcfw_bios6] Error 2
make: *** [sys] Error 2
是不是其他地方也要跟着修改
我修改的地方ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/cfg/ti814x/config_512M.bld
Build.platformTable["ti.platforms.evmTI814X:plat"] =
{
....
l1PMode: "32k",
l1DMode: "32k",
l2Mode: "256k"/*128k*/
};
Lu,
bld文件里面还有定义L2 RAM大小的部分,如下。L2 cache+L2 RAM的大小不能超过256KB。请也看一下之前编译的DSP的map文件,看是否有代码放在了L2 RAM里面,如果是,你就不能把L2全部配置为cache。
["DSP_L2_RAM", {
comment: "DSP_L2_RAM",
name: "DSP_L2_RAM",
base: 0x10800000,
len: 0x00020000
}],
查ipnc_rdk_c6xdsp_release.xe674.map如下:
name origin length used unused attr fill ---------------------- -------- --------- -------- -------- ---- --------
DSP_L2_RAM 10800000 00020000 00020000 00000000 RWIX
这说明L2_RAM的大小128K全部被使用,那么只能l2Mode: "128k“,是这个意思?
lu xinjian 说:查ipnc_rdk_c6xdsp_release.xe674.map如下:
name origin length used unused attr fill ---------------------- -------- --------- -------- -------- ---- --------
DSP_L2_RAM 10800000 00020000 00020000 00000000 RWIX
这说明L2_RAM的大小128K全部被使用,那么只能l2Mode: "128k“,是这个意思?
如果你继续看map下面的内容,你会发现这块内存都分配给了了DSP的internalHeap。
而在BIOS_c6xdsp.cfg有下面的配置,你可以修改internalHeap放到DDR上(DDR3_DSP)。
Program.sectMap[".internalHeap"] = "DSP_L2_RAM";
lu xinjian 说:请问更改下面,是什么意思,有人告诉,不知道对不对?原Cache.MAR128_159=0x0000FF00;改Cache.MAR128_159=0xFFFFF000
MAR的每个bit控制10MB memory空间控制是否cache。请阅读TMS320C674x DSP Megamodule Reference Guide里面的4.4.4 Memory Attribute Registers (MARn)章节。
我根据你的意思更改了
ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/cfg/ti814x/BIOS_c6xdsp.cfg 而在BIOS_c6xdsp.cfg有下面的配置,你可以修改internalHeap放到DDR上(DDR3_DSP)。
Program.sectMap[".systemHeap"] = "DDR3_DSP";
//Program.sectMap[".internalHeap"] = "DSP_L2_RAM"; Program.sectMap[".internalHeap"] = "DDR3_DSP";
更改
ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/cfg/ti814x/config_512M.bld
Build.platformTable["ti.platforms.evmTI814X:plat"] = {
....
l1PMode: "32k",
l1DMode: "32k",
l2Mode: "256k"/*128k*/
};
#make -s sys
出现故障
generating interfaces for package ipnc_rdk_configuro (because package/package.xdc.inc is older than package.xdc) ... configuring MAIN_APP_c6xdsp.xe674 from package/cfg/MAIN_APP_c6xdsp_pe674.cfg ... error: ti.platforms.evmTI814X.Platform: "/usr/local/dm81xx/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/platform/Utils.xs", line 365: ti.platforms.evmTI814X.Platform.Instance#0/customMemoryMap/'DSP_L2_RAM' : Memory object DSP_L2_RAM does not fit into any physical memory bank. js: "/usr/local/dm81xx/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/cfg/Main.xs", line 149: Error: Configuration failed! gmake: *** [package/cfg/MAIN_APP_c6xdsp_pe674.xdl] Error 1 js: "/usr/local/dm81xx/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted. make[3]: *** [xdc_configuro] Error 1
Lu,
错误提示是“Memory object DSP_L2_RAM does not fit into any physical memory bank”,请问你是否有去掉下面的DSP_L2_RAM的配置,或者是把len该为0?
["DSP_L2_RAM", {
comment: "DSP_L2_RAM",
name: "DSP_L2_RAM",
base: 0x10800000,
len: 0x00020000
}],
cache 空间是256k,但是DSP端一运行算法程序时就会出现死机,算法提供商说cache问题,不知什么知道算法是否因cache出现死机,有没有办知道算法用cache的大小?
你好,
算法供应商是否有DSP的测试代码可以运行的?你集成一下他们的测试代码是否能正常运行?算法供应商的memory分配使用和你的代码是否类似? 你们代码里DDR的cache的配置 (MAR)是否和算法供应商一致?
你能否用仿真器对DSP的程序做一下调试?