第4章 汇编语言程序设计
发布时间:2021-06-05
发布时间:2021-06-05
第4章 汇编语言程序设计
4.3 TMS320C54x软件开发过程1. ’C54x应用软件开发流程’C54x应用软件的开发可在TI公司提供的开发环境中进行, 用户可以用C/C++语言或汇编语言编写源文件,经C编译器、 汇编器生成COFF格式的目标文件,再用链接器进行链接,生 成在’C54x上可执行的目标代码,然后利用调试工具对可执 行的目标代码进行仿真和调试。 当调试完成后,通过Hex代码转换工具,将调试后的可执 行目标代码转换成EPROM编程器能接受的代码,并将该代码固 化到EPROM中或加载到用户的应用系统中,以便DSP目标系统 脱离计算机单独运行。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
1. ’C54x应用软件开发流程 开发过程的目的是产生一个可以由’C54x目标系 统执行的模块。宏源文件 C源文件 存档器 汇编 源文件 C编译器 宏库 汇编器 汇编 源文件 存档器 COFF 目标文件
建库工具
目标 文件库
链接器
运行时 支持库 调试工具
可执行的 COFF文件 HEX代码 转换工具 EPROM 编程器 绝对地址 列表器 交叉引用 列表器TMS320C54x
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
TI公司提供的DSP开发环境和工具主要包括以下三个部分:
代码生成工具 代码调试工具 实时操作系统
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
(1)代码生成工具: C编译器:用来将C/C++语言源程序自动编译为 ’C54x的汇编语言源程序。 汇编器:用来将汇编语言源文件汇编成机器语 言COFF目标文件。 链接器:将汇编生成的、可重新定位的COFF目 标模块组合成一个可执行的COFF目标模块。 文档管理器:允许用户将一组文件(源文件或 目标文件)集中为一个文档文件库。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
(1)代码生成工具: 助记符指令—代数式指令翻译器:用来将包含 助记符指令的汇编语言源文件转换成包含代数式指令 的汇编语言源文件。 建库实用程序:用来建立用户自己使用的、并 用C/C++语言编写的支持运行的库函数。 十六进制转换程序:可以很方便地将COFF目标 文件转换成TI、Intel、Motorola等公司的目标文件 格式。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
(1)代码生成工具: 绝对制表程序:将链接后的目标文件作为输入, 生成.abs输出文件。 交叉引用制表程序:利用目标文件生成一个交
叉引用清单,列出链接的源文件中的符号以及它们的定义和引用情况。
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
(2)
代码调试工具: C/汇编语言源码调试器:与软件仿真器、评 价模块、软件开发系统、软件仿真器等配合使用。
软件仿真器:是一种模拟DSP芯片各种功能并在非实时条件下进行软件调试的调试工具,它不需 目标硬件支持,只需在计算机上运行。 初学者工具DSK:是TI公司提供给初学者进行 DSP编程练习的一套廉价的实时软件调试工具。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
2. ’C54x的设计
(2)代码调试工具: 软件开发系统SWDS:是一块PC插卡,可提供 低成本的评价和实时软件开发,还可用来进行软件 调试,程序可在DSP芯片上实时运行。 可扩展的开发系统仿真器(XDS510):可用来 进行系统级的集成调试,是进行DSP芯片软硬件开发 的最佳工具。 评价模块EVM板:是一种低成本的开发板,可 进行DSP芯片评价、性能评估和有限的系统调试。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.4 汇编语言程序的编辑、汇编和链接过程汇编语言源程序可以在任何一种文本编辑器中 进行。如笔记本、WORD、EDIT、TC等。 当汇编语言源程序编写完成后,还必须经过汇 编和链接后才能运行。
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
1. ’C54x应用软件开发流程 开发过程的目的是产生一个可以由’C54x目标系 统执行的模块。宏源文件 C源文件 存档器 汇编 源文件 C编译器 宏库 汇编器 汇编 源文件 存档器 COFF 目标文件
建库工具
目标 文件库
链接器
运行时 支持库 调试工具
可执行的 COFF文件 HEX代码 转换工具 EPROM 编程器 绝对地址 列表器 交叉引用 列表器TMS320C54x
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
4.4 汇编语言程序的编辑、汇编和链接过程示意图. cmd 链接命 令文件.asm 源文件 .obj 目标文件 .out 输出文件
文本编辑器
汇编器-l
链接器-m
-o
调试程序
. lst 列表文件
. map 存储器 映像文件
十六进制 转换程序 HEX500
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
4.4 汇编语言程序的编辑、汇编和链接过程1. 编辑利用各种文本编辑器,如笔记本、WORD、EDIT
和TC等,可编写汇编语言源程序。2. 汇编 当汇编语言源程序编写好以后,可利用’C54x 的汇编器ASM500,对一个或多个源程序分别进行汇 编,并生成列表文件(.lst)和目标文件(.obj)。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.4 汇编语言程序的编辑、汇编和链接过程2. 汇编 常用的汇编命令:
asm500
%1
-s
-1 -x生成一个 交叉汇编表 生成一个 列表文件.lst 将程序所有定义的符号放 在目标文件的符号表中
源文件名 调用汇编器
命令2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.4 汇编语言程序的编辑、汇编和链接过程3. 链接 所谓链接,就是利用’C54x的链接器LNK500, 根据链接器命令文件(.cmd)对已汇编过的一个或多 个目标文件(.obj)进行链接,生成输出文件(.out) 和存储器映像文件(.map) 。
常用的汇编器命令:lnk500 %1.cmd
%1.cmd: 链接命令文件名,该文件须指明目标文件、 lnk500: 调用链接器命令 输入文件、输出文件、链接选项和存储器配置要求等。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.5 COFF的一般概念汇编器和链接器生成的目标文件,是一个可以 由’C54x器件执行的文件。这些目标文件的格式称 之为公共目标文件格式(COFF)。 在编写汇编语言程序时,COFF采用代码段和数 据段的形式,以便于模块化的编程,使编程和管理变 得更加方便。 这些代码段和数据段简称为段。汇编器和链接 器提供一些伪指令来建立和管理各种各样的段。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.5.1 COFF文件的基本单元 1. 段(sections) 是COFF文件中最重要的概念。每个目标文件都分 成若干段。 段——是存储器中占据相邻空间的代码或数据块。 一个目标文件中的每个段都是分开的和各不相同的。 COFF目标文件都包含以下3种形式的段:.text 段(文本段),通常包含可执行代码;
.data 段(数据段),通常包含初始化数据;.bss 段(保留空间段),通常为未初始化变量保留存储空间。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.5.1 COFF文件的基本单元 2. 段的基本类型
COFF目标文件中的段有两种基本类型。(1) 初始化段 初始化段 初始化段中包含有数据或程序代码。主要有: 未初始化段 .text段——已初始化段;
.data段——已初始化段;.sect段——已初始化段,由汇编器伪指令建立
的自定义段。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.5.1 COFF文件的基本单元 2. 段的基本类型
COFF目标文件中的段有两种基本类型。(2) 未初始化段 在存储空间中,为未初始化数据保留存储空间。
它包括:.bss段——未初始化段;
.usect段——未初始化段,由汇编命令建立的命名段(自定义段)。2013年5月18日 DSP技术及应用
第4章 汇编语言程序设计
4.5.1 COFF文件的基本单元 3. 段与目标存储器的对应关系 汇编器的任务:在汇编过程中,根据汇编命令用
适当的段将各部分程序代码和数据连在一起,构成目标文件。
链接器的任务:就是分配存储单元,将目标文件中的段重新定位到目标系统的存储器中,这一过程称
为定位或分配。2013年5月18日 DSP技术及应
用
第4章 汇编语言程序设计
3. 段与目标存储器的对应关系目标文件中的段与目标存储器之间的关系
目标文件
目标存储器
.bss
RAME2PROM
.data.text
ROM
2013年5月18日
DSP技术及应用
第4章 汇编语言程序设计
4.5.2 汇编器对段的处理 汇编器对段的处理是通过段伪指令来区别各个段 的,并将段名相同的语句汇编在一起。汇编器有5条伪指令可识别汇编语言程序的各个 部分: ● .bss ——定义未初始化段 ● .usect ——定义未初始化段 ● .text ——定义已初始化段 ● .data ——定义已初始化段 ● .sect ——定义已初始化段2013年5月18日 DSP技术及应用