CMD文件里包含三部分内容:
1)输入/输出定义:
.obj文件:链接器要链接的目标文件;
.lib文件:链接器要链接的库文件;
.map文件:链接器生成的交叉索引文件;
.out文件:链接器生成的可执行代码;
链接器选项
2)MEMORY命令:描述系统实际的硬件资源
3)SECTIONS命令:描述“段”如何定位
F2812的CMD文件只包含后两部分,现对它的编写做一下总结:
- 用于调试时用,取名为SRAM.CMD
(二)用于烧写到FLASH中时用,取名为FLASH.CMD
FLASH.CMD与SRAM.CMD基本一样,只是有两处改动:一是MEMORY中将你的程序代码部分映射到FLASH空间里;二是在SECTIONS中添加一个用户定义的起始段,起始段的代码如下:
//User Defined Sections , Used by file DSP28_CodeStartBranch.asm
codestart : > BEGIN, PAGE = 0
其中DSP28_CodeStartBranch.asm中的关键代码为:
.ref _c_int00
.sect “codestart”
Code_start:
LB _c_int00
.end
这里有个比较标准的F2812的CMD文件,可以供大家借鉴使用:
MEMORY
{s
PAGE 0:
ZONE0 : origin = 0x002000, length = 0x002000
ZONE1 : origin = 0x004000, length = 0x002000
RAML0 : origin = 0x008000, length = 0x001000
ZONE2 : origin = 0x080000, length = 0x080000
ZONE6 :