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吗???搞不懂,还望赐教