第4章汇编语言程序设计 本章结合C54x的软件开发过程,介绍DSP所 采用的COFF目标文件格式、结构和规范。 >介绍汇编语言重要组成:伪指令Assembler directives和宏指令Macro directives。 讨论建立汇编语言程序并产生可执行文件的 设计要求。指出汇编程序设计中的一些关键 问题,并通过实例介绍设计的方法和技巧。 参考:TMS320C54 k Assembly Language Tools User's Guide.pdf,SPRU102F,2002 TMS320C54x Code Composer Studio Tutorial pdf spru327c,2000,TI官网 1
第4章 汇编语言程序设计 ➢ 本章结合C54x的软件开发过程,介绍DSP所 采用的COFF目标文件格式、结构和规范。 ➢ 介绍汇编语言重要组成:伪指令Assembler directives和宏指令Macro directives。 ➢ 讨论建立汇编语言程序并产生可执行文件的 设计要求。指出汇编程序设计中的一些关键 问题,并通过实例介绍设计的方法和技巧。 参考: TMS320C54x Assembly Language Tools User’s Guide .pdf, SPRU102F,2002年 TMS320C54x Code Composer Studio Tutorial. pdf spru327c,2000,TI官网 1
第4章汇编语言程序设计 目录: ·4.1C54x的软件开发过程 。4.2公共目标文件格式COFF 。4.3汇编器的伪指令 4.4C54x汇编语言的有关知识 ·4.5汇编语言程序设计 2
目录: • 4.1 C54x的软件开发过程 • 4.2 公共目标文件格式COFF • 4.3 汇编器的伪指令 • 4.4 C54x汇编语言的有关知识 • 4.5 汇编语言程序设计 第4章 汇编语言程序设计 2
第4章汇编语言程序设计 4.1C54x的软件开发过程 提供2种编程语言:汇编语言 C/C++语言 对于完成一般功能的代码,这两种语言都可使 用,但对于一些运算量很大的关键代码,最好采 用汇编语言来完成,以提高程序的运算效率。 C54x的软件开发过程可以分为文本编辑、编译、 汇编和连接这样四个基本步骤,如图4-1所示。 3
提供2种编程语言:汇编语言 C/C++语言 对于完成一般功能的代码,这两种语言都可使 用,但对于一些运算量很大的关键代码,最好采 用汇编语言来完成,以提高程序的运算效率。 C54x的软件开发过程可以分为文本编辑、编译、 汇编和连接这样四个基本步骤,如图4-1所示。 第4章 汇编语言程序设计 3 4.1 C54x的软件开发过程
〔用c语言编程) 文本编损器 C源文件.c 〔用汇编语言编程) C编译器 文本编辑器 汇编源文件.asm 汇编器 列表文件.1st COFF目标文件.obj 连接器 命令文件.cmd 其它的.obj 存储器映像文件 m ap 提供定位信息) COFF可执行文件 out 〔调试或固化代码)
第4章 汇编语言程序设计 4
第4章汇编语言程序设计 > C54x的软件开发需要借助于T1公司提供的软件开 发工具:编译器、汇编器和连接器,另外还有一 些辅助的软件包,如归档器、列表器和代码转换 器等。 >这些软件开发工具都被集成在ccS(Code Composer Studio开发环境中。将在第6章详细介 绍CCS的组成及其使用方法 5
➢ C54x的软件开发需要借助于TI公司提供的软件开 发工具:编译器、汇编器和连接器,另外还有一 些辅助的软件包,如归档器、列表器和代码转换 器等。 ➢ 这些软件开发工具都被集成在CCS(Code Composer Studio)开发环境中。将在第6章详细介 绍CCS的组成及其使用方法 第4章 汇编语言程序设计 5
第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分段结构