如何在DSP上把数据或者代码放在L3上面运行 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5176|回复: 3

[未解决] 如何在DSP上把数据或者代码放在L3上面运行

[复制链接]

8

主题

31

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2018-7-15 15:30:45 | 显示全部楼层 |阅读模式
大家好,我现在使用的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段,我没法再使用了?


回复

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
发表于 2018-7-15 22:07:37 | 显示全部楼层
您好,C6748的CPU芯片内部,应该是二级缓存的,您说的L3 RAM,具体指的是?我们一般可以使用的,是L1 RAM和L2 RAM,请您参考。
回复 支持 反对

使用道具 举报

8

主题

31

帖子

160

积分

注册会员

Rank: 2

积分
160
 楼主| 发表于 2018-7-15 23:02:20 | 显示全部楼层
广州创龙廖工 发表于 2018-7-15 22:07
您好,C6748的CPU芯片内部,应该是二级缓存的,您说的L3 RAM,具体指的是?我们一般可以使用的,是L1 RAM和 ...

C:\Users\Administrator\Desktop\C67XX内存分配.png
我现在可以使用图上的0x11800000地址开始的256KB的L2内存,但是在使用图上0x80000000地址开始的128KB的L3内存时,程序无法运行。不知道您说的L1 内存地址是哪段范围?
回复 支持 反对

使用道具 举报

8

主题

31

帖子

160

积分

注册会员

Rank: 2

积分
160
 楼主| 发表于 2018-7-15 23:07:12 | 显示全部楼层
如图是C67XX的内存地址。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-29 07:39 , Processed in 0.044764 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表