ImageVerifierCode 换一换
格式:PPT , 页数:28 ,大小:160.02KB ,
资源ID:4174277      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4174277.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP第6章-DSP软件开发工具.ppt)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

DSP第6章-DSP软件开发工具.ppt

1、第六章 软件开发工具, 6.1 软件开发流程,1、软件开发工具C编译器汇编器链接器,.asm,.obj,.out,第六章 软件开发工具,2、编制一个汇编程序的步骤 (1)用文本编辑器编辑C55x格式要求的汇编源程序。 (2) 调用汇编器(masm55或asm55)汇编该源程序,生成一个公共目标文件格式的COFF目标文件(.obj)。 (3)调用链接器(lnk55)链接目标文件,生成可执行的COFF执行文件(.out) (4)将COFF执行文件下载到 C55x DSP中执行,同时也可借助调试工具对程序进行跟踪调试或优化,也可利用交叉参考列表器和绝对列表器生成一些包含调试信息的表。,第六章 软件开

2、发工具, 6.2 汇编源程序(.asm)格式 1、源程序的构成C55x的程序基本单元是段(Section),一个程序文件由若干段构成。每段由若干语句(Statement)构成。 2、段的分类程序段分为初始化(Initialize)段和未初始化(Uninitialized)段。初始化段可以是:程序代码,程序中用到的常量、数据表等。未初始化段:通常是变量。,第六章 软件开发工具,理解:初始化段:往程序空间写数据(程序代码或数据)的段,如同初始化程序空间一样。未初始化段:变量,在下载时,变量是没有值的,所以无需向程序空间写,只需留出一段空间以便在运行时存放变量的值。所以这段空间在程序未运行前是没有初

3、始化的。 3、段的定义(1)用户自定义的语法格式 symbol .sect “section_name”; symbol(可选项)为该段的起始地址。 symbol .usect “ section_name”,length;length为该段的长度(单位:字)。,定义初始化段,定义未初始化段,汇编指示符,第六章 软件开发工具,(2)汇编器对默认段的处理 汇编器默认的段有3个:.text:程序代码段.data:数据段.bss:变量段 汇编指示符:.text和.data定义的是初始化段。.bss定义的是未初始化段。,第六章 软件开发工具,4、汇编源文件举例(完成两个复数矩阵的乘法)* file n

4、ame :matrix_mpy.asm. include “evb_constant.h”. ref row_ number,column_number. def mpy_start. mmregs. sect “mpy_data”matrix_a .copy matrixa.datmatrix_b .copy matrixb.datmatrix_c .usect “mpyresult”,2row_nunbercolumn_numer.sect “mpy_prog”mpy_start:bclr c54cm.c54cm off,定义初始化的数据段,定义未初始化段,定义初始化的程序代码段,标号,注

5、释,第六章 软件开发工具,(1)程序matrix_mpy.asm由用户自定义的 3段组成mpy_data、mpy_result和mpy _prog初始化段.sect “mpy_data”:定义了名为 mpy_data的数据段。 段中使用了“.copy”指示符,汇编器在汇编时将数据文件marixa.dat,matrib.dat拷贝进来。“.include”指示符不是将文件全部拷贝进来,只是将程序用到的部分拷贝进来。未初始化段.usect “mpy_result”:定义的是用于存放矩阵a与矩阵b相乘的结果。初始化段.sect “mpy_prog”:定义的是执行乘法的代码段。,第六章 软件开发工具,

6、(2)程序中的其它的汇编指示符(汇编指示符的使用参阅P275的附录C).ref:程序要引用在其它程序模块中定义的全局符号。.def:在程序中定义的供其它程序引用的全局符号。.mmregs:程序中可直接使用存储映射寄存器或字段名。程序中标号必须以字母从第1列开始,可以含有数字或下划线,程序语句则不能从第1列开始。指令可以大写也可以小写,操作数间用逗号分隔。注释可以用星号(*)和分号(;)表示,但星号必须从第1列开始,而分号可以从任意一列开始。,第六章 软件开发工具, 6.3 汇编器 1、功能:汇编器把汇编源文件汇编成COFF目标文件。 2、C55x的两个汇编器:masm55:用于汇编采用 C55

7、x的助记符指令编写的源文件asm55:用于汇编采用 C55x的代数指令编写的源文件。 3、汇编器完成的工作处理汇编语言源文件中的源语句,生成一个可重新定位的目标文件;产生源程序列表文件,提供对源程序列表文件的控制;将代码分成段,为每个目标代码段设置一个段程序计数器 SPC,并把代码和数据汇编到指定的段中,在存储器中为末初始化段留出空间;,第六章 软件开发工具,定义(.def)和弓l用(.ref)全局符号,将交叉参考列表加到源程序列表中;汇编条件段;支持宏调用,允许在程序中或在库中定义宏。 4、汇编器调用方法(1) 可以在命令行用下面的命令格式调用汇编器masm55 input file obj

8、ect file listing file options asm55 input file object file listing file options input file :汇编源文件名。如不写扩展名,汇编器将使用缺省的.asm。 object file:汇编器输出的 COFF目标文件名,缺省为.obj listing file:汇编器输出的列表文件名; options:汇编选项,不分大小写,可放在命令行中汇编命令之后的任何地方。,第六章 软件开发工具,(2) 使用举例对汇编源程序matrix_mpy.asm进行汇编masm55 matrix_mpy.asm matrix_mpy.o

9、bj -i C:timyproject(3) 汇编器调用也可以在集成开发环境下由CCS调用(参见第8章),输入源文件,输出目标文件,汇编器通过这个路径查找数据文件和头文件,第六章 软件开发工具,6.4 COFF目标文件汇编器生成的文件称为 COFF目标文件(如: matrix_mpy.obj)链接器生成的文件称为COFF执行文件(如: matrix_mpy.out) 1、 COFF目标文件格式的特点:(1)支持模块化(段)编程(2)能提供有效灵活的管理代码段和目标系统存储空间的方法。 2、COFF文件结构 (1) 一个文件头长度为22字节,包含COFF文件结构的版本号、段头的数量、创建日期、符

10、号表起始地址和入口数量、可选文件头的长度等信息。,第六章 软件开发工具,(2) 可选的文件头信息包含执行代码的长度和起始地址、初始化数据的长度和起始地址、未初始化段的长度、程序入口地址等信息,以便在下载时进行重定位。 (3) 各个段的头信息列表每个段都有一个头,用于定义各段在COFF文件中的起始位置。段头包含段的名称、物理地址、虚拟地址、长度、原始数据长度等信息。 (4) 每个初始化段的原始数据包含每个初始化段需写入程序存储空间的代码和初始化数据。,第六章 软件开发工具,(5)每个初始化段的重定位信息汇编器自动生成各初始化段的重定位入口信息,链接时再由链接器读取该入口信息并结合用户对存储空间的

11、分配进行重定位。 (6)每个初始化段的行号入口用于C语言程序的符号调试。C程序被编译为汇编程序,汇编器就会在汇编代码前生成一个行号,该行号映射到C源程序里相应的行上,便于调试程序。 (7) 一个符号表用于存放程序中定义的符号的入口,以便调试。 (8) 一个字符串表用于存放那些符号名称超过8个字符的符号名称字符串。,第六章 软件开发工具,3、 段的顺序 汇编器将汇编源程序汇编成COFF目标文件, COFF目标文件段的顺序为:.text.data.bss用户自定义初始化段用户自定义的末初始化段”,注意: 未初始化段(.bss和.usect)只是在存储空间中保留空间,并没有代码或数据,所以未初始化段

12、只有段头,而没有原始数据、重定位信息和行号等,第六章 软件开发工具, 6.5 链 接 器 一、链接器概述链接器能够把COFF目标文件链接成可执行文件(.out)。允许用户在目标系统的存储空间中为程序的各段分配存储空间。能根据用户的配置,将各段重定位到指定的区域,包括各段的起始地址、符号的相对偏移等。C55X的链接器能够接受多个 COFF目标文件,把多个目标文件的相同段组合在一起,生成COFF执行文件。,第六章 软件开发工具,二、链接器调用方法 1、调用链接器的命令格式:lnk55 -options filename1 filenamen lnk55:链接器调用命令filename:为输入的目标

13、文件名options:为链接器的选项,用于控制链接操作,可以放在命令行或链接器命令文件中的 任何地方,第六章 软件开发工具,2、链接器调用的4种方法 (1)在命令行指定选项和文件名例:lnk55 -o link.out file1.obj file2.obj (2)只输入lnk55命令,在链接器给出的提示符下输入相应内容:command files:输入命令文件名object files .obj :输入一个或多个目标文件output file a.out:链接器输出文件名option:输入选项,第六章 软件开发工具,(3) 使用链接器命令文件假定一个命令文件linker.cmd的内容如下:o

14、 link.outfile1.objfile2.obj 在命令行运行链接器Lnk55 linker.cmd,表示连接两个目标文件产生名为link.out(4) 使用集成开发环境CCS先写好链接命令文件和相应的选项,然后由CCS自行调用,第六章 软件开发工具,3、链接器命令文件 (1)作用 利用链接器命令语言来编制链接器命令文件(.cmd),应用MEMORY和SECTIONS命令可灵活自行配置目标系统的存储空间,为各段指定地址。 允许用户将链接信息放入一个文件中,以便于在相同情况下的多次调用, (2) 内容 输入文件名 链接器选项 MEMORY和SECTIONS命令,MEMORY用于指定目标存储

15、器配置,SECTIONS用于指定段的地址; 赋值语句,用于定义全局符号,并赋值。 注意,在链接器命令文件中,不能将保留字用作符号或段的名称:,第六章 软件开发工具,例:链接命令文件matrixmpy.cmd内容如下:matrixmpy.obj ;输入的目标文件o matrixmpy.out ;输出的可执行文件e mpy_start ;程序的入口地址MEMORY PAGE 0:DARAM (RW): org0000C0h len0FF3FhSARAM (RWX): org010000h len03FF00h SECTIONS mpy_result: DARAM PAGE 0mpy _prog:

16、SARAM PAGE 0mpy_ data: SARAM PAGE 0 ,第六章 软件开发工具,分析:命令文件分为三个部分输入/输出文件和选项部分;由MEMORY命令定义目标存储器的配置;由SECTIONS命令定义各段的定位。 (2) MEMORY命令指定所需的存储方式和存储地址范围,语法结构如下MEMORY PAGE0: name attr:origincostant,length costantPAGEn: name attr:origincostant,length costant,标识一个存储空间,表示一段存储空间的名字 Attr为该段存储空间的属性,表示该存储空间的起始地址,表示该存

17、储空间的长度,以字节为单位,第六章 软件开发工具,(3) SECTIONS命令可以指定各个段的存储地址,一般语法如下。SECTIONSname : property, property, property, name : property, property, property, 其中:name 表示段的名称,是在程序中定义的,如:mpy_prog。property 为该段的属性,包括段的内容以及如何定位等。,第六章 软件开发工具,上述例子中,将程序中定义的三段分别定位到在MEMORY中定义的存储空间DARAM和SARAM中。下载时 系统就会在DARAM中从地址0000 C0h开始,为matr

18、ix_c留出长为 2*row_number*column_number个字的空间; 将程序段 mpy_prog写到从地址010000h开始的SARAM中, 数据段mpy_data紧跟其后。 程序将从mpy_start即地址010000h处开始运行,因为在命令文件中指定mpy_start为程序人口地址。,第六章 软件开发工具,6.6 C编译器及其他 1C编译器 C编译器包含三个功能模块:语法分析、代码优化和代码产生语法分析:完成C语法检查和分析;代码优化:对程序进行优化,以便提高效率;代码产生:将 C程序转换成 C55 x的汇编源程序。 C编译器的调用格式为:cl55 options filen

19、ames -z link_options object files,调用命令,编译选项,输入文件名,目标文件,调用链接器时的链接选项,第六章 软件开发工具,2、交叉参考列表器交叉参考列表器属于调试工具,能以链接器输出的文件为输入,生成一个交叉参考列表。该交叉参考列表将列出程序中的符号、符号的定义及其引用等。调用格式xref55 options input filename output filename ,第六章 软件开发工具,3绝对列表器绝对列表器属于调试工具,能以链接器输出的文件为输入,生成一个列表文件(.abs)。该列表文件将列出程序代码的绝对地址。调用格式为:abs55 option inputfile 其中: abs55为调用命令inputfile为输入文件名options为选项:,第六章 软件开发工具,思考题:下列链接命令文件*.cmd问题出在哪里?*.cmd:MEMORY DATA : org0X000000 len0X07FFPROG : org0X000400 len0X0600 SECTIONS my_data: DATA text: PROG,问题: DATA占用了MMR的空间 DATA 与PROG空间有重叠,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报