dsp的链接命令文件

 

链接命令文件(.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

}

你可能感兴趣的:(dsp2812)