CCS5.5 自定义CMD文件和#pragma指令
目前我使用的芯片为OMAP L138,因为片上RAM资源不足,外加了一片DDR作为扩展内存。按照之前在CCS3.3上的做法,可以自定义CMD文件:
/*********mylink.tcf*****mylink.cmd****************/
MEMORY{
DDR1:origin=0x*****, len=0x***
}
SECTIONS{
DDR1_DATA: {}>DDR1
DDR1_CODE: {}>DDR1
}
-l mylinkcfg.cmd
/*****************************/
之后通过
/*****************/
#pragma DATA_SECTION(U08_Data, "DDR1_DATA");
#pragma CODE_SECTION(TestFunc, "DDR1_DATA");
/*****************/
的方式进行较为灵活的内存分配。
但是目前在CCS5.5的版本上,添加自定义CMD文件,在没有内存重叠的情况下,遇到了如下问题:
/***********************/
mylinkcfg.cmd CACHE_L1D memory range has already been
mylinkcfg.cmd CACHE_L1P memory range has already been
mylinkcfg.cmd IRAM memory range has already been
…
…
/***********************/
根据:
/***********************/
e2e.ti.com/…/126190
/***********************/
我在property->link中加入该文件和其路径,但并没有解决问题。
目前我没有找到合适的资料,所以期待能这里寻求帮助。如果有合适的资料文档或者其他内存使用方式也可以。
期待您的回复。
Nancy Wang:
直接将比如.text段分配到该地址的时候是否会报错?
Shine:
-l mylinkcfg.cmd要放在自定义cmd文件的第一行。
user6323483:
回复 Shine:
我把这行屏蔽掉,发现问题就解决了,而且似乎ccs并不限制cmd文件的数量。
在此向向您咨询下这条指令的含义,或者哪里有合适的资料。
感谢您的回复
user6323483:
回复 Nancy Wang:
并不是内存分配的问题,而且cmd文件内,指令格式的问题 感谢您的回复
user6323483:
回复 Shine:
感谢您的回复