二 源程序的编译
源程序编辑好后可以用 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 输出模块;其二,链接器为输
出块指定存储位置。