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

请教C6743 DSP在CCS3.3环境下编译程序出现问题(CMD文件如下): can't allocate .far, size 00027540 (page 0) in DSP2RAM (avail: 00020000)

error: can't allocate .far, size 00027540 (page 0) in DSP2RAM (avail:
00020000)
>> error: can't allocate .text, size 000082a0 (page 0) in L1PRAM (avail:
00007fff)

CMD文件如下:

-l rts64plus_eh.lib
-l C6747bsl.lib

-c
-stack 0x00002000 /* Stack Size */
-heap 0x00002000 /* Heap Size */

MEMORY
{
DSP1RAM: o = 0x11820000 l = 0x00020000
L1PRAM: o = 0x11E00000 l = 0x00007fff
L1DRAM: o = 0x00F00000 l = 0x00007fff
DSP2RAM: o = 0x00820000 l = 0x00020000

}

SECTIONS
{ .bss > DSP2RAM
.cinit > DSP2RAM
.cio > DSP2RAM
.const > DSP2RAM
.stack > DSP2RAM
.sysmem > DSP2RAM
.data > DSP2RAM
.switch > DSP2RAM
.far > DSP2RAM
.src_data > DSP2RAM
.vectors > L1PRAM
.text > L1PRAM
}

Tony Tang:

看一下spru186和spru187文档的linker章节,学习一下cmd文件的结构。

上面信息告诉你空间放不下了,不明白上面怎么会把.text放到L1P,这里上电时是Cache,另外也没见加外部内存,程序大了放不下,就要放到外部内存了。

yinglan li.vectors > L1PRAM.text > L1PRAM

 

user1853832:

回复 Tony Tang:

您好,谢谢您的回复。

还想请问下:

1 L1P 、L1D这两个是不是不能作为映射存储器出现在CMD中???

2 C6743的L2 RAM有两段地址:0x0082 0000-0x0083 FFFF,0x1182 0000-0x1183 FFFF,这两段是同一个物理内存吗?可不可以同时在这两段地址里放不同的程序???

3 有没有具体的说明哪个段放在DSP内存,哪个段可以放在外部内存???

user1853832:

回复 Tony Tang:

L1P、L1D这两个RAM不能存放程序吗?那C6743的内部RAM就只能用128K的L2RAM吗???搞不懂,还望赐教

Tony Tang:

回复 user1853832:

yinglan li

您好,谢谢您的回复。

还想请问下:

1 L1P 、L1D这两个是不是不能作为映射存储器出现在CMD中???

: 最好不要,因为一般来说不会放东西上去的。而且存在于cmd当中,还要当心误放。

2 C6743的L2 RAM有两段地址:0x0082 0000-0x0083 FFFF,0x1182 0000-0x1183 FFFF,这两段是同一个物理内存吗?可不可以同时在这两段地址里放不同的程序???

:是同一段物理内存。

3 有没有具体的说明哪个段放在DSP内存,哪个段可以放在外部内存???

:原则是片上内存快,放访问频繁的段或代码,访问少的放片外。

Tony Tang:

回复 user1853832:

yinglan li

L1P、L1D这两个RAM不能存放程序吗?那C6743的内部RAM就只能用128K的L2RAM吗???搞不懂,还望赐教

赞(0)
未经允许不得转载:TI中文支持网 » 请教C6743 DSP在CCS3.3环境下编译程序出现问题(CMD文件如下): can't allocate .far, size 00027540 (page 0) in DSP2RAM (avail: 00020000)
分享到: 更多 (0)