文档详情

Chapter 4 汇编语言程序的开发工具.ppt

发布:2017-06-18约5.01千字共34页下载文档
文本预览下载声明
D S P 原理 与 应 用 The principle and application of DSP 第三章 汇编语言程序的开发工具 本章知识概要: C54X软件开发流程 汇编语言程序编写、编辑、汇编及链接 COFF段的一般概念 汇编器和链接器处理段的方法 程序重定位 学习重点: COFF段的概念 汇编、链接处理段方法 程序重定位 4.1 C54X软件开发过程 集成开发环境CCS 非集成开发环境 。C编译器 。汇编器 。链接器 。文档管理器 。十六进制转换程序 。绝对表程序 。交叉引用制表程序 4.1 C54X软件开发过程 4.1 C54X软件开发过程 TMS320C54xV3.50版代码生成工具程序 4.1 汇编语言程序的编辑、汇编链接 编辑 利用文本编辑器编写源程序 汇编 利用C54X的汇编器ASM500对一个或多 个源程序分别进行汇编 链接 利用C54X的链接器LNK500根据链接器命令(.cmd)对一个或多个目标文件(.obj)进行链接,生成存储器映像文件(.map)和输出文件(.out) 调试 对输出文件(.out)进行调试 (1)软件仿真 (2)硬件仿真 (3)评估板调试 固化 利用HEX500对ROM或EPROM编程 4.3 COFF的一般概念 公共目标文件格式(COFF) (1)汇编和链接生成的目标文件,是一个C54x器件执行的文件。 (2)COFF采用代码段和数据段的形式,便于模块化编程,代码段和数据段简称为段。 (3)汇编器和链接器提供伪指令来建立和管理各样的段。 4.3 COFF的一般概念 段(sections)是COFF文件中最重要的概念。一个段就是最终在存储器映象中占据连续空间的一个数据或代码块。目标文件中的每一个段都是相互独立的。一般地,COFF目标文件包含3个缺省的段:text段、data段、bss段。 段可以分为两大类,即已初始化段和未初始化段。如图所示为目标文件中的段与目标系统中存储器的关系。 4.3.1 COFF文件的基本单元 4.3.1 COFF文件的基本单元 汇编器在汇编过程中,根据汇编命令用适当的段将各部分代码和数据连在一起,构成目标文件。 链接器分配存储单元,将各个段重新定位到目标存储器。即定位或分配。 4.3.2 汇编对段的处理 4.3.2 汇编对段的处理 2.已初始化段 已初始化段包含可执行代码或已初始化数据。这些段的内容存储在目标文件中,加载程序时再放到TMS320C54X存储器中。三个用于建立初始化段的伪指令句法分别为: .text [段起点] .data [段起点] .sect “段名”[,段起点] 4.3.2 汇编对段的处理 3.命名段 命名段就是程序员自己定义的段,它与缺省的.text、.data和.bss段一样使用,但与缺省段分开汇编。 data段不同的存储器中,将未初始化的变量汇编到与.bss段不同的存储器中。产生命名段的伪指令为: 符号 .usect “段名”,字数 .sect “段名”[,段起点] 4.3.2 汇编对段的处理 4.子段 子段(Subsections)是大段中的小段。链接器可以像处理段一样处理子段。采用子段可以使存储器图更加紧密。子段的命名句法为: 基段名:子段名 子段也有两种,用.sect命令建立的是已初始化段,用.usect命令建立的是未初始化段。 4.3.2 汇编对段的处理 5.段程序计数器(SPC) 汇编器为每个段安排一个独立的程序计数器,即段程序计数器(SPC)。SPC表示一个程序代码段或数据段内的当前地址。开始时,汇编器将每个SPC置0,当汇编器将程序代码或数据加到一个段内时,相应的SPC增加。如果汇编器再次遇到相同段名的段,继续汇编至相应的段,且相应的SPC在先前的基础上继续增加。 4.3.3 链接器对段的处理 链接器对段的处理有两个功能。首先,它将汇编器产生的COFF目标文件(.obj文件)中的各种段作为输入段,当有多个文件进行链接时,它将输入段组合起来,在可执行的COFF输出模块中建立各个输出段。其次,链接器为输出段选择存储器地址。 4.3.3 链接器对段的处理 链接器有两个命令完成上述功能,即: MEMORY 命令——定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度。 SECTIONS命令——告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出段。子段可以
显示全部
相似文档