您好!
我最近迷茫在CMD文件以及GEL文件中,有几个疑惑想请教一下!
1、关于CMD文件的作用以及实际意义,如果有相应的文档可以发个链接吗?谢谢
2、我在使用研旭的开发板时发现,CMD中没有分配SDRAM地址(Memory Map中是有定义),只是在程序中写了起始地址0xc000 0000,结果可以正常运行,不知道这种情况怎么回事?
3、关于GEL文件,我也有同样的疑惑,不知道它的用途,及如果根据我的开发需要来修改,如果有具体的例子,最好了。
希望多多指教!谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
1. cmd的作用告诉编译器代码段, 数据段等各个段放在哪块地址. 语法见下面的文档第8.5 Linker Command Files章节.
http://www.ti.com/lit/ug/spru186x/spru186x.pdf
2. CMD文件是怎么样的? cmd文件一般按照memory map来写的, 看你程序数据需要放在哪块memory.
3. GEL文件是在CCS 调试阶段用的, 初始化功能, 如, 要把程序加载到片外SDRAM, 此时需要在GEL文件对SDRAM进行初始化.
http://processors.wiki.ti.com/index.php/GEL
您好!感谢您的解答,有两点我还是不太明白,
1、cmd的告诉编译器各个数据程序段放在哪里,如果缺省时,但程序中用到了会怎么样?比如我最初提出的问题,SDRAM在cmd中没有分配地址,但却可以正确的读写数据,这怎么解释?其cmd文件为:
-stack 0x00001000 /* Stack Size */
-heap 0x00001000 /* Heap Size */
MEMORY
{
VECS: o = 0x00800000 l = 0x00000800
ARMRAM: o = 0xFFFF0080 l = 0x00001f80
DSPL2ROM: o = 0x00700000 l = 0x000FFFFF
DSPL2RAM: o = 0x00800f00 l = 0x0003f000
DSPL1PRAM: o = 0x00E00000 l = 0x00008000
DSPL1DRAM: o = 0x00F00000 l = 0x00008000
SHAREDRAM: o = 0x80000f00 l = 0x0001ffff
}
SECTIONS
{ ".vectors" > VECS
.data > DSPL2RAM
.bss > DSPL2RAM
.cinit > DSPL2RAM
.cio > DSPL2RAM
.const > DSPL2RAM
.stack > DSPL2RAM
.sysmem > DSPL2RAM
.text > DSPL2RAM
.switch > DSPL2RAM
.far > DSPL2RAM
.calcbuffer > DSPL2RAM
.compxbuf > DSPL2RAM
}
2、GEL文件作用是初始化,但是主程序已经做了初始化了,GEL文件岂不是重了?而且好多程序都是公用的一个GEL文件,对其本质还是不能理解。
还望您可以给出解答,谢谢!