第4章汇编语言程序设计 宏源文件 C源文件 存档器 汇编 源文件 C编译器 宏库 汇编 汇编器 源文件 COFF 存档器 目标文件 建库工具 目标 文件库 链接器 爱解 可执行的 调试工其 置 C0FF文件 TMS320C54x EPROM 绝对地址 交艾引用 编程器 列表器 列表器 6
C源文件 C编译器 汇编 汇编器 源文件 汇编 源文件 COFF 目标文件 链接器 可执行的 COFF文件 宏源文件 存档器 宏库 存档器 目标 文件库 建库工具 运行时 支持库 EPROM 编程器 交叉引用 列表器 调试工具 TMS320C54x 绝对地址 列表器 HEX代码 转换工具 第4章 汇编语言程序设计 6
4.2公共目标文件格式COFF COFF:common object file format 汇编器和链接器生成的目标文件,是一个可以由 C54x器件执行的文件。这些目标文件的格式称之 为公共目标文件格式(COFF)。 采用这种文件格式的优点是: 将指令和数据按照段的概念进行组织和存储, 这使得程序的可读性大大增强,更容易编写程序, 更便于进行程序的移植,更利于进行模块化的程 序设计,为管理代码段及系统存储器提供了灵活 的方法和手段。 7
4.2 公共目标文件格式COFF 汇编器和链接器生成的目标文件,是一个可以由 C54x器件执行的文件。这些目标文件的格式称之 为公共目标文件格式(COFF)。 COFF: common object file format 采用这种文件格式的优点是: 将指令和数据按照段的概念进行组织和存储, 这使得程序的可读性大大增强,更容易编写程序, 更便于进行程序的移植,更利于进行模块化的程 序设计,为管理代码段及系统存储器提供了灵活 的方法和手段。 7
4.2公共目标文件格式COFF COF文件有3种类型:COFF0、COFF1、COFF2 每种类型的cOF文件,其标题格式都有所不同,但 数据部分是相同的。 链接器能够读/写所有类型的COFF文件,C54x默认 时链接器生成的是COFF2文件,采用-vn链接选项 可以选择不同类型的COFF文件。 8
COFF文件有3种类型:COFF0、COFF1、COFF2 每种类型的COFF文件,其标题格式都有所不同,但 数据部分是相同的。 链接器能够读/写所有类型的COFF文件, C54x默认 时链接器生成的是COFF2文件,采用-v n链接选项 可以选择不同类型的COFF文件。 8 4.2 公共目标文件格式COFF
4.2.1分段结构 所谓“段”就是在存储器映像中占据连续空间的 一段独立的代码或数据。每个目标文件都分成若干段。 COFF目标文件包含以下三个默认的段: > .text段:通常内含可执行代码; > .data段:通常内含已初始化数据; > bss段:是为没有初始化的数据保留空间的。 COFF目标文件的段又可分为两大基本类型:已初 始化段和未初始化段。 9
所谓“段”就是在存储器映像中占据连续空间的 一段独立的代码或数据。每个目标文件都分成若干段。 COFF目标文件包含以下三个默认的段: ➢ .text 段:通常内含可执行代码; ➢ .data段:通常内含已初始化数据; ➢ .bss段:是为没有初始化的数据保留空间的。 COFF目标文件的段又可分为两大基本类型:已初 始化段和未初始化段。 9 4.2.1分段结构
4.2.1分段结构 ▣Section(“段”) 概念:一块连续的储存空间,可存 放程序或数据 口在编程时,“段”没有绝对定位,每个“段”都认为 是从0地址开始的一块连续的储存空间,而无需关心这 些“段”究竟定位在系统的哪些地方。 优点:便于程序的模块化编程;便于工程化管理:可 将软件开发人员和硬件开发人员基本上分离开。 重定位:由于所有的“段”都是从0地址开始,所以程 序编译完成后是无法运行的,要让程序正确运行,必 须对“段”进行重新定位,这个工作由链接器完成。 口.cmd文件:MEMORY命令描述系统硬件资源,SECTIONS 命令描述软件人员程序中用到的“段”如何定位到恰 当的硬件资源上。 10
❑ Section(“段”)概念:一块连续的储存空间,可存 放程序或数据 ❑ 在编程时,“段”没有绝对定位,每个“段”都认为 是从0地址开始的一块连续的储存空间,而无需关心这 些“段”究竟定位在系统的哪些地方。 ❑ 优点:便于程序的模块化编程;便于工程化管理:可 将软件开发人员和硬件开发人员基本上分离开。 ❑ 重定位:由于所有的“段”都是从0地址开始,所以程 序编译完成后是无法运行的,要让程序正确运行,必 须对“段”进行重新定位,这个工作由链接器完成。 ❑ .cmd文件:MEMORY命令描述系统硬件资源,SECTIONS 命令描述软件人员程序中用到的“段”如何定位到恰 当的硬件资源上。 10 4.2.1分段结构