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

DSP CMD文件有关PAGE的问题(C28X,C55X,C24X)

这个问题困扰了大概一周,源自需要写一份CMD文件语法规则的文档。

问题大致如下:

1.CMD文件中的PAGE0,PAGE1….PAGE n仅仅是方便程序员管理存储空间(在代码风格上),还是不同的page对应着不同的内存空间(比如page 0 对用着程序空间,page 1对应着数据空间)

以上两种解释我在不同的官方文档中都有看到,所以很纠结。

如果仅仅是代码风格上的分割,那么对于C2XLP内核器件和C55X系列器件又解释不过去,因为这两种器件的内存空间不是同一编址的,例如C2XLP的程序、数据、IO空间都是分开编址的。如果page仅是代码风格上的分割,而不代表不同的数据空间,那么图1中重叠的空间怎么解释,连接器怎么区分这两个重叠部分的代码,并将其放到对应的物理存储空间。

如果不同的page对应着不同的数据空间,那么我在28335(c28x)上的验证又不能支撑这一点假设,我将原来分配的PAGE0和PAGE1分别改成了PAGE3和PAGE5,并将PAGE0,PAGE1,PAGE2,PAGE4中没有分配任何数据块。编译通过后查看map文件,发现对应的段都分配到了对应的PAGE3和PAGE5。且代码运行正常。如果不同的page对应着不同的数据空间,那么PAGE3和PAGE5代表什么空间?为什么编译还能正常连接

Susan Yang:

不太了解其他的DSP芯片,关于C2000的话,您可以看一下

 

MEMORY
{PAGE 0 :RAMM0: origin = ...RAML0L1 : origin = ...PAGE 1 :RAMM1: origin = ...RAML2: origin = ...
}

 

每页内存完全独立。在页面之间,您可以重用内存范围名称和内存地址。以下示例完全合法,但是一般不建议这样

 

/* DO NOT DO THIS!!! */
MEMORY
{PAGE 0 :MEM_RANGE : origin = 0x100, length = 0x100PAGE 1 :MEM_RANGE : origin = 0x100, length = 0x100
}

 

赞(0)
未经允许不得转载:TI中文支持网 » DSP CMD文件有关PAGE的问题(C28X,C55X,C24X)
分享到: 更多 (0)