DSP

dsp的链接命令文件

2019-07-13 12:50发布

 
链接命令文件(.cmd文件)通过段定位控制命令,分配程序代码和数据运行存储空间。 链接命令文件有两个重要的指令:MEMORY和SECTIONS。 (1)、MEMORY 指出目标系统中物理上存在的存储空间的范围,即可供程序使用的存储空间范围。在默认状态下,PAGE0代表程序空间,PAGE1代表数据空间。 (2)、SECTIONS 1)、描述输入段如何组合成输出段。 2)、定义可执行程序的输出段。 3)、指出输出段存放在存储空间中的位置。 4)、允许重命名输出段。       .cmd文件编写的目的 确定程序和数椐的装载运行空间,校验数据和程序代码的长度,定义输入/输出文件,安排系统中可用的存储器,程序段、数据段、堆栈以及复位向量和中断向量的地址空间。 链接命令文件通过段定位控制命令,分配程序代码空间、数据代码空间、程序运行空间、堆栈空间。 u     .CMD文件命令格式 Ø       MEMORY定义目标板物理存储空间分配,默认状态下,PAGE0为程序空间, PAGE1为数据空间。 Ø       SECTIONS定义程序连接过程中各个输入段与输出段之间的关系,并给出输出段地址。① 给出输入段组合成输出段的方式; 定义可执行程序的输出段; 指出输出段存放在存储空间中的位置④ 允许重命名输出段。   例如 .cmd文件应用 MEMORY {      PAGE 0:   PROG: origin = 0x1400, len = 0x2c00                        ;第0页程序空间开始地址0x1400,空间长度0x2c00                       VECT: origin = 0x0080, len = 0x80                          ;第0页中断向量开始地址0x0080,空间长度0x80      PAGE 1:   REGS: origin = 0x60, len = 0x1c                           ;第1页寄存器空间开始地址0x60,空间长度0x1c                IDATA: origin = 0x80, len = 0x1380                       ;第1页数据空间开始地址0x80,空间长度0x1380 EDATA: origin = 0x1400,len = 0x8000                        ;第1页扩展数据空间开始地址0x1400,空间长度0x8000              EDATA1: origin = 0x9400,len = 0x4c00                        ;第1页扩展数据空间开始地址0x9400,空间长度0x4c00 } SECTIONS {     .vectors:   {}> VECT PAGE 0      ;中断向量在第0    .text:        {}> PROG PAGE 0      ;程序代码在第0    .cinit:       {}> PROG PAGE 0      ;初始化变量在第0    .pinit:       {} > PROG PAGE0      ;初始化参数在第0    .bss:         {} > IDATA PAGE1     ;非初始化变量在第1    .far:         {} > IDATA PAGE1     ;长调函数在第1    .const:     {} > IDATA PAGE1     ;常数在第1    .switch:   {} > IDATA PAGE1     ;数据交换空间在第1    .sysmem: {} > IDATA PAGE1         .cio:        {} > IDATA PAGE 1     C语言I/O调用在第1    .stack:     {} > IDATA PAGE 1    ;堆栈在第1    .csldata:   {} > IDATA PAGE 1    C语言宏调用在第1}