DSP原理及应用第四章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.3.3 链接器对段的处理 链接器有2条伪指令支持上述任务:
● MEMORY伪指令——用来定义目标系统的存储 器配置空间,包括对存储器各部分命名,以及规定 它们的起始地址和长度。 ● SECTIONS伪指令——用来指定链接器将输入 段组合成输出段方式,以及输出段在存储器中的位 置,也可用于指定子段。 若未使用伪指令,则链接器将使用目标处理器 默认的方法将段放入存储空间。
DSP应用技术
第4章汇编语言程序开发工具
第4章 汇编语言程序开发工具
内容提要
可编程DSP芯片开发需要一套完整的软、硬件开 发工具。通常可分成代码生成工具和代码调试工具两 大类。 代码生成工具是指将高级语言或汇编语言编写的 DSP程序转换成可执行的DSP芯片目标代码的工具程 序,主要包括汇编器、链接器和C编译器以及一些辅 助工具程序等。 代码调试工具包括C/汇编语言源码调试器、仿真 器等。 本章主要介绍代码生成工具,包括’C54x软件开 发流程、汇编语言程序的编写、编辑、汇编和链接过 程、COFF段的一般概念、汇编器和链接器处理段的 方法以、程序的重定位及CCS等。
制作:段荣行 X
5
第4章 汇编语言程序开发工具
1. ’C54x应用软件开发流程
宏源文件 C源文件
开发过程的目的是产生一个可以由’C54x目标系 统执行的模块。
存档器 汇编 源文件 C编译器 宏库 汇编器 汇编 源文件 存档器 COFF 目标文件 建库工具
目标 文件库
链接器
运行时 支持库
调试工具 可执行的 COFF文件 HEX代码 转换工具
4.2 汇编语言程序的编辑、汇编和链接过程
. cmd 链接命 令文件
.asm 源文件 .obj 目标文件 .out 输出文件
文本编辑器
汇编器
-l
链接器
-m
-o
调试程序
. lst 列表文件
. map 存储器 映像文件
十六进制 转换程序 HEX500
制作:段荣行
X
15
第4章 汇编语言程序开发工具
4.3 COFF的一般概念
X
27
第4章 汇编语言程序开发工具
4.3.3 链接器对段的处理
2. 段放入存储器空间
若不希望链接器将所有的.text段结合在一起形 成单个的.text段,就不能采用默认的方式。 由于DSP硬件系统中可能配置多种类型的存储器, 若要把某一段分配到特定类型的存储器中,或将命名 段配置特定的地址,则需采用MEMORY和SECTIONS伪指 令来配置。 若不采用默认的方式,通常需要建立一个链接命 令文件,在命令文件中用MEMORY和SECTIONS伪指令定 义存储器和配置段地址。
.text 段(文本段),通常包含可执行代码;
.data 段(数据段),通常包含初始化数据;
.bss 段(保留空间段),通常为未初始化变量保留存储空间。
制作:段荣行 X
17
第4章 汇编语言程序开发工具
4.3.1 COFF文件的基本单元 2. 段的基本类型
COFF目标文件中的段有两种基本类型。
(1) 初始化段 初始化段 初始化段中包含有数据或程序代码。主要有: 未初始化段 .text 段——已初始化段;
汇编器有5条伪指令可识别汇编语言程序的各个 部分: ● .bss ——定义未初始化段 ● .usect ——定义未初始化段 ● .text ——定义已初始化段 ● .data ——定义已初始化段 ● .sect ——定义已初始化段
制作:段荣行 X
22
第4章 汇编语言程序开发工具
4.3.3 链接器对段的处理
制作:段荣行 X
28
第4章 汇编语言程序开发工具
4.3.5 程序装入 可以采用以下方法装入程序: 链接器产生可执行的COFF目标文件。可执行的 使用调试工具转入程序 目标文件模块与链接器输入的目标文件具有相同的 ’C54x的调试工具包括软件模拟器,XDS仿真器 COFF格式。为了运行程序,在可执行模块中的数据 和集成系统CCS。它们都具有内部的装入器,调用装 必须传输或装入目标系统存储器中。 入器的LOAD命令,装入器将程序复制到目标系统的 存储器中。 采用Hex转换工具转入程序 可以使用转换工具Hex500,将可执行COFF目标 模块转换成几种其他目标格式文件,然后将转换后 的文件通过编程器将程序装(烧)进EPROM。
制作:段荣行 X
2
第4章 汇编语言程序开发工具
4.1 TMS320C54x软件开发过程
4.2 汇编语言程序的编辑、汇编和链接过程
4.3 COFF的一般概念 4.4 链接器的使用 4.5 CCS简介
制作:段荣行
X
3
第4章 汇编语言程序开发工具
4.1 TMS320C54x软件开发过程
’C54x的应用软件开发主要完成以下工作: (1) 选择编程语言编写源程序 ’C54x提供2种编程语言,即汇编语言和C/C++语言。
制作:段荣行 X
26
第4章 汇编语言程序开发工具
默认的存储器分配过程:
程序存储器
File1.obj
.text1
.data1 .bss1 table_1 (初始化的命名段) u_vars1 (未初始化的命名段)
数据存储器 没有配置 .bss1 .bss2 u_vars1 u_vars1 u_vars2 .bss
.text
.data
.text1
.text2 .data1 .data2
table_1
table table_2 FFT FFT
File2.obj
.text2 .data2 .bss2 table_2 (初始化的命名段) u_vars2 (未初始化的命名段)
没有使用
没有使用
没有配置
制作:段荣行ຫໍສະໝຸດ FFT (初始化的命名段)
制作:段荣行 X
9
TI原装C6711 入门套件(DSK)
AD535 16-bit Codec Parallel Port X JTAG Controller Daughter Card Expansion Slots 150 MHz ‘C6711 DSP 128 KBytes Flash ROM Universal (CE Compliant) Power Supply
中的段重新定位到目标系统的存储器中,这一过程称
为定位或分配。
X
制作:段荣行
20
第4章 汇编语言程序开发工具
3. 段与目标存储器的对应关系
目标文件中的段与目标存储器之间的关系
目标文件
目标存储器
.bss
RAM
E2PROM
.data
.text
ROM
制作:段荣行
X
21
第4章 汇编语言程序开发工具
4.3.2 汇编器对段的处理 汇编器对段的处理是通过段伪指令来区别各个段 的,并将段名相同的语句汇编在一起。
.usect段——未初始化段,由汇编命令建立的命
名段(自定义段)。
制作:段荣行 X
19
第4章 汇编语言程序开发工具
4.3.1 COFF文件的基本单元 3. 段与目标存储器的对应关系 汇编器的任务:在汇编过程中,根据汇编命令用
适当的段将各部分程序代码和数据连在一起,构成目
标文件。
链接器的任务:就是分配存储单元,将目标文件
4 MBytes SDRAM
制作:段荣行
10
PC
C64x 入门套件: C6416 DSK
制作:段荣行
X
11
第4章 汇编语言程序开发工具
2. ’C54x的开发工具
(2)代码调试工具:
可扩展的开发系统仿真器(XDS510):可用来进 行系统级的集成调试,是进行DSP芯片软硬件开发的 最佳工具。 评价模块EVM板:是一种低成本的开发板,可 进行DSP芯片评价、性能评估和有限的系统调试。
制作:段荣行 X
25
第4章 汇编语言程序开发工具
1. 默认的存储器分配 默认的存储器分配: ① 将所有.text段组合在一起,形成一个.text 段,并分配到程序存储器中;
② 将多个目标文件中的.data段组合在一起, 分配到紧接着.text段的程序存储空间中;
③ 将.bss段组合,配置到数据存储器中; ④ 组合命名段。初始化的命名段按顺序分配到 紧随.data段的程序存储器,而未初始化命名段将被 配置到紧随.bss段的数据存储器中。
链接器是开发’C54x器件必不可少的开发工具 之一,它对段处理时有2个主要任务:
① 将一个或多个COFF目标文件中的各种段作为
链接器的输入段,经链接后在一个执行的COFF输出
模块中建立各个输出段;
② 在程序装入时对其重新定位,为各个输出段
选定存储器地址。
制作:段荣行 X
23
第4章 汇编语言程序开发工具
2. ’C54x的开发工具
(2)代码调试工具:
C/汇编语言源码调试器:与软件仿真器、评价 模块、软件开发系统、软件仿真器等配合使用。
软件仿真器:是一种模拟DSP芯片各种功能并
在非实时条件下进行软件调试的调试工具,它不需 目标硬件支持,只需在计算机上运行。 初学者工具DSK:是TI公司提供给初学者进行 DSP编程练习的一套廉价的实时软件调试工具。
TMS320C54x
EPROM 编程器
绝对地址 列表器
交叉引用 列表器
制作:段荣行
X
6
第4章 汇编语言程序开发工具
2. ’C54x的开发工具
TI公司提供的DSP开发环境和工具主要包括以下
三个部分:
代码生成工具
代码调试工具 实时操作系统
制作:段荣行
X
7
第4章 汇编语言程序开发工具
2. ’C54x的开发工具
对于完成一般功能的代码,这两种语言都可使用,但对
于一些运算量很大的关键代码,最好采用汇编语言来完成, 以提高程序的运算效率。 (2) 选择开发工具和环境 ’C54x提供了两种开发环境。即非集成开发环境和集成 开发环境CCS。
制作:段荣行 X
4
第4章 汇编语言程序开发工具
4.1 TMS320C54x软件开发过程
制作:段荣行 X
16
第4章 汇编语言程序开发工具
4.3.1 COFF文件的基本单元 1. 段(sections) 是COFF文件中最重要的概念。每个目标文件都 分成若干段。 段——是存储器中占据相邻空间的代码或数据块。 一个目标文件中的每个段都是分开的和各不相同的。 COFF目标文件都包含以下3种形式的段:
制作:段荣行 X
24
第4章 汇编语言程序开发工具
4.3.3 链接器对段的处理
1. 默认的存储器分配 链接器可对多个目标文件进行链接。若链接文件 中不使用MEMORY和SECTIONS命令,则为默认方式。 每个目标文件都有.text,.data、.bss段和命名 段。若采用默认链接,链接器将对多个目标文件中的 各个段进行组合,形成各自的对应段,并将各个段配 置到所指定的存储器中,形成可执行的目标模块。 在默认的方式下,链接器将从存储器的0080h开 始,对组合后的各段进行存储器配置。
制作:段荣行
X
12
C6701 评估板
制作:段荣行
X
13
第4章 汇编语言程序开发工具
4.2 汇编语言程序的编辑、汇编和链接过程
汇编语言源程序可以在任何一种文本编辑器中进行
。如笔记本、WORD、EDIT、TC等。
当汇编语言源程序编写完成后,还必须经过汇编和链
接后才能运行。
制作:段荣行
X
14
第4章 汇编语言程序开发工具
汇编器和链接器生成的目标文件,是一个可以由 ’C54x器件执行的文件。这些目标文件的格式称之 为公共目标文件格式(COFF)。 在编写汇编语言程序时,COFF采用代码段和数 据段的形式,以便于模块化的编程,使编程和管理变 得更加方便。 这些代码段和数据段简称为段。汇编器和链接器 提供一些伪指令来建立和管理各种各样的段。
1. ’C54x应用软件开发流程
’C54x应用软件的开发可在TI公司提供的开发环境中进行, 用户可以用C/C++语言或汇编语言编写源文件,经C编译器 、汇编器生成COFF格式的目标文件,再用链接器进行链接, 生成在’C54x上可执行的目标代码,然后利用调试工具对可 执行的目标代码进行仿真和调试。 当调试完成后,通过Hex代码转换工具,将调试后的可执 行目标代码转换成EPROM编程器能接受的代码,并将该代码 固化到EPROM中或加载到用户的应用系统中,以便DSP目标 系统脱离计算机单独运行。
.data段——已初始化段;
.sect段——已初始化段,由汇编器伪指令建立
的自定义段。
制作:段荣行 X
18
第4章 汇编语言程序开发工具
4.3.1 COFF文件的基本单元 2. 段的基本类型
COFF目标文件中的段有两种基本类型。
(2) 未初始化段 在存储空间中,为未初始化数据保留存储空间。
它包括:
.bss段——未初始化段;
(1)代码生成工具:
C编译器:用来将C/C++语言源程序自动编译为 ’C54x的汇编语言源程序。 汇编器:用来将汇编语言源文件汇编成机器语 言COFF目标文件。 链接器:将汇编生成的、可重新定位的COFF 目标模块组合成一个可执行的COFF目标模块。
制作:段荣行
X
8
第4章 汇编语言程序开发工具
相关文档
最新文档