TI中文支持网
TI专业的中文技术问题搜集分享网站

c6678内存分配问题

您好:

    目前我在别人的一个dsp工程上继续做开发,鉴于需求,需要把分配的MSMCSRAM的大小调小一些。

下面为目前的map,

name                origin             length           used             unused          attr          fill
———————- ——– ——— ——– ——– —- ——–
L2SRAM          00800000      00080000    00016d28    000692d8      RW X
MSMCSRAM   0c000000      00400000     00102700    002fd900       RW X
DDR3              80000000      02000000     004da9e9    01b25617      RW X
DDR3_SM      88000000      04000000     00000000    04000000      RW

—————————————————————————————————-

下面为.cmd文件:

SECTIONS
{
.init_array: load >> L2SRAM
.srioSharedMem: load >> MSMCSRAM
.qmss: load >> MSMCSRAM
.cppi: load >> MSMCSRAM
.shmETH2MACdata load >> MSMCSRAM
.shmMAC2ETHdata load >> MSMCSRAM
}

CMD文件中只有以上内容,没有指定MSMCSRAM起始地址和长度的代码。

下面为编译后Debug文件夹中linker.cmd中和MSMCSRAM相关的部分:

–args 0x0
-heap 0x0
-stack 0x10000

MEMORY
{
L2SRAM (RWX) : org = 0x800000, len = 0x80000
MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000
DDR3 (RWX) : org = 0x80000000, len = 0x2000000
DDR3_SM (RW) : org = 0x88000000, len = 0x4000000
}

我的问题是我该怎么修改MSMCSRAM的len?

(

MEMORY
{

MSMCSRAM: o = 0x0C000000 l = 0x003E0000
}

在.cmd中加入以上代码后编译出错,错误信息如下:

<Linking>
"../C0_add.cmd", line 5: error: MSMCSRAM memory range has already been
specified
"../C0_add.cmd", line 5: error: MSMCSRAM memory range overlaps existing memory
range MSMCSRAM

)

另外,RTSC中使用的是自定义的platform。我看TI用户手册上有说使用platform wizard配置内存分配,但我无法选择此自定义的platform。

L G2:

你可以参考DDR的分配,将MSM分为两部分。我是这样想的,你可以试试

Allen35065:

你用的是BIOS操作系统吧,这样的话需要在Platform定义中指定内存段,或者需要自己新建一个Platform,详见BIOS User Guide.

赞(0)
未经允许不得转载:TI中文支持网 » c6678内存分配问题
分享到: 更多 (0)