DSP开发的最终目标验证系统实现满足功能性和实时性的指标要求

1.开发流程

项目中必须添加的文件:
.C——程序文件;
.cmd——链接命令文件;
.lib——库文件。
.h——头文件,必须以include方式添加
编译:源程序文件—>COFF(机器语言目标文件)
链接:链接目标文件的段所使用的存储空间
2. COFF—公共目标文件格式
COFF——Common Object File Format
基于代码块和数据块的概念。
COFF的好处:
- 更利于模块化编程,并为管理代码段和目标系统存储器提供了更强有力和更加灵活的方法;
- 基于COFF格式编写的汇编程序或高级语言程序时,不必为程序代码或变量指定目标地址,这为程序编写和程序移植提供了极大的方便
1️⃣块Section
目标文件中最小的单位称作块,一个块就是最终在TMS320存储器映像中占据连续空间的一块代
码或数据。
C编译器产生的块:
1.已初始化块:
- .text 可执行代码
- .cinit 全局与静态变量初始值
- .const 字符串文字、字符串常量
2.未初始化块
- .bss 全局和静态变量空间
- .stack 系统堆栈
- .sysmem 动态存储器函数
汇编器对块的处理:
汇编器的主要任务:确定汇编语言程序各部分属于哪段。
.text、.data、.sect及.asect创建已初始化块
.bss和.usect创建未初始化块
1.已初始化块(包含可执行代码或已初始化的数据。)

当汇编器遇到上述命令时,它立即停止汇编至当前块中,且开始将随后的代码或数据汇集至相应的块中。块是通过迭代过程建立的。
2.未初始化块(存储器中保留空间,他们通常被分配到RAM中)

汇编器遇到bss和usect命令都不结束当前块,只是暂时离开当前块。该命令可以出现在一个已初始化块中的任何地方。
链接器对块的处理
链接器对段的处理主要有两个功能:
- 将COFF目标文件中的段组合起来,建立可执行的COFF输出模块;
- 为输出段选择存储器地址。

.CMD文件中为链接器命令:
格式命令:
MEMORY:用于定义目标系统的存储器,可以定义每一段存储器指定的起始地址和长度;
SECTIONS:告诉链接器如何组合输入段以及将输出段放至存储器何处。
例题



全局变量定义文件
DSP2833x_GlobalVariableDefs.c