在nonBIOS情况下,CMD文件不外乎就三个:
28335_RAM_lnk.cmd(用于仿真调试) 、
DSP2833x_Headers_nonBIOS.cmd 、
F28335.cmd(用于flash烧写)。仿真调试时只用前两个,用于flash烧写时只用后两个,且不管在何种方式下28335_RAM_lnk.cmd和F28335.cmd不能同时用,也不能代替用。
在DSP28335—CMD文件解读(1)中,已经介绍过DSP2833x_Headers_nonBIOS.cmd 。
在用
28335_RAM_lnk.cmd时,一般情况下直接用TI给的,不需要做修改即可满足调试用,模式较固定,当然你也可以做相应的修改用到哪块RAM存储空间,在CMD文件里做相应的分配即可。
MEMORY
{
PAGE 0 :
BEGIN : origin = 0x000000, length = 0x000002
BOOT_RSVD : origin = 0x000002, length = 0x00004E
RAMM0 : origin = 0x000050, length = 0x0003B0
RAML : origin = 0x008000, length = 0x004000
ZONE7A : origin = 0x200000, length = 0x00FC00
CSM_RSVD : origin = 0x33FF80, length = 0x000076
CSM_PWL : origin = 0x33FFF8, length = 0x000008
ADC_CAL : origin = 0x380080, length = 0x000009
RESET : origin = 0x3FFFC0, length = 0x000002
IQTABLES : origin = 0x3FE000, length = 0x000b50
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0
BOOTROM : origin = 0x3FF27C, length = 0x000D44
PAGE 1 :
RAMM : origin = 0x000400, length = 0x000400
RAMH : origin = 0x00C000, length = 0x004000
ZONE6B : origin = 0x13FC00, length = 0x000400
ZONE7B : origin = 0x20FC00, length = 0x000400
}
SECTIONS
{
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAML, PAGE = 0
.text : > RAML, PAGE = 0
.cinit : > RAML, PAGE = 0
.pinit : > RAML, PAGE = 0
.switch : > RAML, PAGE = 0
.stack : > RAMM, PAGE = 1
.ebss : > RAMH, PAGE = 1
.econst : > RAMH, PAGE = 1
.esysmem : > RAMM, PAGE = 1
IQmath : > RAML, PAGE = 0
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
ZONE7DATA : > ZONE7B, PAGE = 1
ZONE6DATA : > ZONE6B, PAGE = 1
.reset : > RESET, PAGE = 0, TYPE = DSECT
csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT
csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
}
而编写用于flash烧写的F28335.cmd文件时相对来说较复杂些,根据不同的情况需要做一些修改。
1 不需要把部分代码copy到RAM里,一般情况不需要外扩RAM等时直接用TI的F28335.cmd即可。
2 需要把部分代码从flash 复制到RAM里,如延时函数DSP2833x_usDelay.asm等,这时CMD文件需要做相应的修改,具体参考博文:
http://blog.sina.com.cn/s/blog_762cf5f80101asmq.html
3 从时间开销方面考虑,需要把整个程序从flash复制到RAM里,这时程序及CMD文件都要做相应的修改,具体参考博文
http://blog.sina.com.cn/s/blog_762cf5f80101apfx.html