|
大家好,我现在使用的OMAPL138开发版,由ARM接收数据,在DSP处理数据。
为了让数据在DSP中运行的更快,想把一些数据段放在L2或者L3中运行。
以下是我的.CMD中的配置:
MEMORY
{
IROM (RX) : org = 0x11700000, len = 0x100000
IRAM (RWX) : org = 0x11800000, len = 0x38000
L3_CBA_RAM (RWX) : org = 0x80000000, len = 0x20000
SR_0 (RWX) : org = 0xc2000000, len = 0x10000
SR_1 (RWX) : org = 0xc2010000, len = 0xff0000
DSP_PROG (RWX) : org = 0xc3000000, len = 0x3000000
}
。。。。。
SECTIONS
{
.text: load >> DSP_PROG
.ti.decompress: load > DSP_PROG
.stack: load > DSP_PROG
GROUP: load > DSP_PROG
{
.bss:
.neardata:
.rodata:
}
.cinit: load > DSP_PROG
.pinit: load >> DSP_PROG
.init_array: load > DSP_PROG
.const: load >> DSP_PROG
.data: load >> DSP_PROG
.fardata: load >> DSP_PROG
.switch: load >> DSP_PROG
.sysmem: load > DSP_PROG
.far: load >> DSP_PROG
.args: load > DSP_PROG align = 0x4, fill = 0 {_argsize = 0x64; }
.cio: load >> DSP_PROG
.ti.handler_table: load > DSP_PROG
.c6xabi.exidx: load > DSP_PROG
.c6xabi.extab: load >> DSP_PROG
.vecs: load > DSP_PROG
.plt: load > DSP_PROG
xdc.meta: load > DSP_PROG, type = COPY
.ramfuncs > IRAM /* 增加了一个新的ramfuncs段到L2 RAM中 */
.ramdatas > IRAM/* 增加了一个新的ramdatas段到L2 RAM中 */
.raml3data > L3_CBA_RAM/* 增加了一个新的raml3data段到L3 RAM中 */
}
在我的DSP端代码如下:
#pragma DATA_SECTION(min_tmp,"ramdatas")
int min_tmp = 0;
#pragma DATA_SECTION(max_tmp,"raml3data")
int max_tmp = 0;
现在运行结果是如果单独使用L2段,那么程序可以运行且运行速度有较大提升;但是只要使用了L3端,编译可以通过但是运行直接跑飞。
请问是我使用L3段的方法不对嘛?还是本身程序就使用了L3段,我没法再使用了?
|
|