嵌入式开发者社区

标题: 如何在DSP上把数据或者代码放在L3上面运行 [打印本页]

作者: 15901123858    时间: 2018-7-15 15:30
标题: 如何在DSP上把数据或者代码放在L3上面运行
大家好,我现在使用的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段,我没法再使用了?



作者: 广州创龙廖工    时间: 2018-7-15 22:07
您好,C6748的CPU芯片内部,应该是二级缓存的,您说的L3 RAM,具体指的是?我们一般可以使用的,是L1 RAM和L2 RAM,请您参考。
作者: 15901123858    时间: 2018-7-15 23:02
广州创龙廖工 发表于 2018-7-15 22:07
您好,C6748的CPU芯片内部,应该是二级缓存的,您说的L3 RAM,具体指的是?我们一般可以使用的,是L1 RAM和 ...

C:\Users\Administrator\Desktop\C67XX内存分配.png
我现在可以使用图上的0x11800000地址开始的256KB的L2内存,但是在使用图上0x80000000地址开始的128KB的L3内存时,程序无法运行。不知道您说的L1 内存地址是哪段范围?
作者: 15901123858    时间: 2018-7-15 23:07
如图是C67XX的内存地址。





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4