CMD配置文件的作用:
一、把程序空间和数据空间切分成小块并已命名。
二、组织、安排把各个已切分好的小块空间用程序代码和数据填充,或者说把已切分好的小块空间与程序代码段和数据段建立对应联系。
举例:
/*----------------------------------------------------------------------*/
/* CMD命令文件 - 存储空间划分(LF2407A) */
/*----------------------------------------------------------------------*/
MEMORY
{
PAGE 0:
VECS :origin = 0000h , length = 0040h /* 程序复位 */
PROG :origin = 00b0h , length = 7F50h /* 片内FLASH */
PAGE 1:
B2: origin = 0060h , length = 0020h /* 片内双口RAM,B2 块 */
B0B1: origin = 0200h , length = 0200h /* 片内双口RAM,合并B0、B1块 */
SARAM_IN:origin = 0800h , length = 0800h/* 片内单访问RAM,数据区 */
SARAM_EX:origin = 8000h , length = 8000h/* 外部扩展RAM,数据区,暂不用 */
}
/*----------------------------------------------------------------------*/
/* CMD命令文件 - 程序段、数据段配置(LF2407A) */
/*----------------------------------------------------------------------*/
SECTIONS
{
.vectors : { } > VECS PAGE 0 /* 指向自己定义的中断向量表 */
.text : { } > PROG PAGE 0 /* 程序代码 */
.cinit : { } > PROG PAGE 0
.switch : { } > PROG PAGE 0
.data : { } > SARAM_IN PAGE 1 /* 片内单访问RAM 初始化的数据*/
.bss : { } > SARAM_IN PAGE 1 /* 片内单访问RAM 未初始化的数据保留所需的空间*/
.const : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */
//.stack : { } > SARAM_IN PAGE 1 /* 堆栈,片内单访问RAM */
.sysmem : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */
}