background image

 

二 源程序的编译

      源程序编辑好后可以用 DSPCL 编译程序进行编译,生成 OBJ 文件。

 

使用格式: DSPCL 

 

源文件名 参数

例如:DSPCL EX1.C –V2XX –GK –MN

常用参数的意义:

V2XX:表示 C 编译器选择处理器 2XX 系列

GK:保留编译生成的汇编文件(.ASM 文件)

MN:进行正常优化

其他参数请参考 DSP 编译器的手册。如果有多个源文件,分别编译。每一个源文件经编译

后产生一个 OBJ 文件和 ASM 文件。

 

三 目标文件的链接

 

(一) TI 公司的 COFF 文件格式

       TI 公司新的汇编器和编译器创建的目标文件采用 COFF 的目标文件格式(Common 

Object File Format)采用 COFF 格式有利于模块化编程,为管理代码段和目标系统存储器

提供更加强有力和灵活的方法。基于 COFF 格式编写汇编程序或 C 语言程序时,不必为程

序代码和变量指定目标地址,为程序编写和程序移植提供了极大的方便。

       COFF 格式的基本思想是:鼓励程序员在用汇编语言或 C 语言编程时运用代码块和

数据块的概念。这种块称为 SECTION,是目标文件中的最小单位。所有的块分为两大类:

已初始化块和未初始化块,已初始化块包含程序代码和数据,未初始化块是为未初始化

的数据在存储器中的保留块。C 编译器对 C 程序编译后产生已初始化块和未初始化块,已

 

初始化块如 .text 

 

块、 .const 块、.cinit

 

块 ;未初始化块如.bss 块。

举个例子,当程序员用 C

 

语句 float data[100];定义一个数组时不需要指定这 100 个数

组元素的具体位置,编译器会在数据区预留所需空间,到链接时链接器会具体定位。

 

(二) 链接器对块的处理

      链接器对块的处理有两个功能:其一,将 COFF 目标文件中的块用来建立程序块和

数据块,并将这些块组合成可以被 DSP 芯片执行的 COFF 输出模块;其二,链接器为输

出块指定存储位置。