DSP软件开发过程.ppt
- 文档编号:2742908
- 上传时间:2022-11-10
- 格式:PPT
- 页数:106
- 大小:1.07MB
DSP软件开发过程.ppt
《DSP软件开发过程.ppt》由会员分享,可在线阅读,更多相关《DSP软件开发过程.ppt(106页珍藏版)》请在冰豆网上搜索。
DSP技术及应用技术及应用软件开发过程DSP技术及应用技术及应用引言前面介绍了C54X的内部硬件结构以及一些常用的片上外设的原理,当芯片被灌入我们自己的程序,C54X才有意义。
问题是我们如何利用C54X进行编程?
可编程DSP芯片的开发需要一套完整的开发工具和对应的开发方法。
下面介绍TI公司C5000系列的程序开发过程,侧重于代码的生成过程,代码生成是指将高级语言或汇编语言编写的DSP程序转化为可执行的DSP芯片目标代码,这将主要使用包括汇编器、链接器、和C编译器在内的一些辅助工程程序。
DSP技术及应用技术及应用DSP软件开发过程软件开发过程软件开发概述软件开发概述汇编语言程序的编写方法汇编语言程序的编写方法汇编语言程序的汇编汇编语言程序的汇编COFFCOFF的一般概念的一般概念目标文件的链接目标文件的链接DSP技术及应用技术及应用1软件开发概述:
软件开发过程软件开发概述:
软件开发过程首先是选择编程语言编写源程序,C54X提供两种编程语言,三种编程方式。
两种语言是汇编语言和C/C+语言;三种开发方式是单纯的采用汇编语言的方式进行开发、单纯地采用C/C+语言的方式进行开发、采用汇编语言和C/C+语言的混合进行开发。
单纯的以汇编语言进行开发,开发效率低,可移植性差,一旦程序员熟悉后,能够大幅度提高代码效率;单纯地使用C/C+语言进行开发,容易入门,可移植性好,容易实现代码的复用。
对于一般的任务,这两种语言都可以,对于一些运算量很大的关键代码,最好采用汇编语言完成,以提高程序的运算效率;对于主程序框架,最好使用C/C+语言,以方便移植和复用。
DSP技术及应用技术及应用其次是源程序编写好以后,就要选择开发工具和环境,C54X常用的开发环境是集成开发环境CCS(CodeComposerStudio)。
CCS在windows系统操作下运行,它集成了非集成开发环境的所有功能,并扩展了许多其他功能。
但是,各个环节所需要的参数和非集成开发环境是一样的。
最后如果源程序是C/C+语言,需调用C54X的C编译器将其编译成汇编语言,汇编后产生COFF(公共目标文件格式)的格式文件,再用连接器进行链接,生成在C54X上可执行的COFF格式的目标代码,并利用调试工具对可执行的目标代码进行调试,以保证应用软件正确无误。
如果需要,可调用Hex代码转换工具,将COFF格式的目标代码转换成EPROM编译器能接受的代码,将代码烧到EPROM中。
DSP技术及应用技术及应用1软件开发概述:
软件开发过程软件开发概述:
软件开发过程软件开发过程DSP技术及应用技术及应用1软件开发概述:
编译、汇编、链接软件开发概述:
编译、汇编、链接编译、汇编、链接DSP技术及应用技术及应用1软件开发概述:
编译、汇编、链接软件开发概述:
编译、汇编、链接C编译编译器(器(CCompiler)用来将)用来将C/C+语语言源程序自言源程序自动动的的编译为编译为C54X的的汇编汇编源程序。
源程序。
C编译编译器和器和汇编语汇编语言工具包分言工具包分开的工具。
开的工具。
汇编汇编器(器(Assembler)是用来将)是用来将汇编语汇编语言源文件言源文件汇编汇编成机成机器器语语言言COFF目目标标文件,源文件中包括指令、文件,源文件中包括指令、汇编伪汇编伪指令指令以及宏以及宏伪伪指令。
用指令。
用户户可以用可以用汇编汇编器器伪伪指令控制指令控制汇编过汇编过程的程的各个方面,例如源文件清各个方面,例如源文件清单单的格式、数据的格式、数据调调整和段内容。
整和段内容。
链链接器(接器(Linker)将)将汇编汇编生成的、可重定位的生成的、可重定位的COFF目目标标模模块组块组合成一个可合成一个可执执行的行的COFF目目标标模模块块。
当。
当链链接器生成接器生成可可执执行模行模块时块时,它要,它要调调整整对对符号的引用,并解决外部引用符号的引用,并解决外部引用的的问题问题。
它也可以接收来自文档管理器中的目。
它也可以接收来自文档管理器中的目标标文件,以文件,以及及链链接以前运行接以前运行时时所生成的所生成的输输出模出模块块。
DSP技术及应用技术及应用1软件开发概述:
汇编命令软件开发概述:
汇编命令汇编命令汇汇编编命命令令是是用用来来为为程程序序提提供供数数据据和和控控制制汇汇编编进进程程的的。
C54x汇汇编编器器共共有有64条条汇汇编编命命令令,根根据据它它们们的的功功能能,可可以以将将汇汇编编命命令令分成分成8类:
类:
(1)对各种段进行定义的命令。
)对各种段进行定义的命令。
(2)对常数(数据和存储器)进行初始化的命令。
)对常数(数据和存储器)进行初始化的命令。
(3)调整)调整SPC(段寄存器)的指令。
(段寄存器)的指令。
(4)对输出列表文件格式化的命令。
)对输出列表文件格式化的命令。
(5)引用其它文件的命令。
)引用其它文件的命令。
(6)控制条件汇编的命令。
)控制条件汇编的命令。
(7)在汇编时定义符号的命令。
)在汇编时定义符号的命令。
(8)执行其它功能的命令。
)执行其它功能的命令。
DSP技术及应用技术及应用11汇编语言源程序的句法格式汇编语言源程序的句法格式要点要点以以.asm.asm为扩展名为扩展名每一行由每一行由44个部分组成个部分组成格式格式标号标号:
空格空格助记符助记符空格空格操作数操作数空格空格;注释;注释中的内容为可选择部分供本程序的其它部分或其它程序调用。
标号是任选项,标号后面可以加也可以不加冒号“:
”。
第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用要要点点1.1.标号必须从第列写起,标号必须从第列写起,2.2.标号最多可达标号最多可达3232个字符,可以是个字符,可以是AAZZ,aazz,0099,__,以及,以及$,但标号的第,但标号的第11个字符不能是数字。
个字符不能是数字。
3.3.引用标号时,标号的大小写必须一致。
引用标号时,标号的大小写必须一致。
4.4.标号的值就是段程序计数器标号的值就是段程序计数器SPCSPC的值。
的值。
5.5.如果不用标号,则第一个字母必须为空格、分号如果不用标号,则第一个字母必须为空格、分号或星号(或星号(*)。
)。
第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用要点要点建议建议标号标号:
空格空格助记符助记符空格空格操作数操作数空格空格;注释;注释可以是助记符指令、汇编指令、宏可以是助记符指令、汇编指令、宏指令和宏调用命令。
指令和宏调用命令。
1.1.助记符指令,一般用大写;助记符指令,一般用大写;2.2.汇编命令和宏命令,以句号汇编命令和宏命令,以句号“.”开始,且为通常用小写。
开始,且为通常用小写。
第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用要点要点标号标号:
空格空格助记符助记符空格空格操作数操作数空格空格;注释;注释1.1.指令中的操作数或汇指令中的操作数或汇编命令中定义的内容编命令中定义的内容2.2.操作数之间必须用逗操作数之间必须用逗号号“,”分开。
分开。
1.1.从分号从分号“;”开始开始2.2.可以放在指令或汇编命令后面,可以放在指令或汇编命令后面,也可以放在单独的一行或数行。
也可以放在单独的一行或数行。
要点要点第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用助记符指令源语句举例One.set1;符号One=1Start:
LD#One,AR1;将1加载到AR1操作数举例Lable:
ADD#99,B操作数#99(十进制)是一个立即数。
汇编器将99加到指定的累加器B中。
如果用户执行一个位移操作,就要在位移数前面加上前缀#。
DSP技术及应用技术及应用22汇编语言源程序的数据型式汇编语言源程序的数据型式二进制:
如二进制:
如1110001b或或1111001B;八进制:
八进制:
226q或或572Q;十进制:
十进制:
1234或或+1234或或-1234(缺省型)(缺省型)十六进制:
十六进制:
0A40h或或0A40H或或0xA40浮点数:
浮点数:
1.623e-23(仅(仅C语言程序中能用,汇编程序不能用)语言程序中能用,汇编程序不能用)字符:
字符:
D字符串:
字符串:
“thisisastring”第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用汇编语言中的常数和字符串二进制整数二进制整型常量最多由16位二进制数字(0或1)组成,后缀为B。
如果数字小于16位,汇编器将其右边对齐,并在前面补零。
八进制整数八进制整型常量最多由6位八进制数字(0-7)组成,后缀为Q。
十进制整数十进制整型常量由十进制数字串组成,无后缀。
取值范围为:
-3276865535。
十六进制整数十六进制整型常量最多由14位十六进制数字(十进制数09及字母AF)组成,后缀为H。
DSP技术及应用技术及应用浮点数浮点整型常量由一连串十进制数字组成,可以带小数点、分数和指数部分。
例如99.e9是有效的数,但99e9非法。
汇编时间常数在程序中使用.set伪指令给一个符号赋值,该符号就成为一个汇编时间常数,等效于一个常数。
为了使用表达式中的常数,赋给符号的必须是绝对值。
例如将常数值18赋给符号nan_hua,即nan_hua.set18LD#nan_hua,A也可以用.set伪指令将符号常数赋给寄存器名。
DSP技术及应用技术及应用字符常数字符常数是包括单引号在内的字符串。
若单引号之间没有字符,则值为0。
每个字符在内部表示为8位ASCII码。
例如:
a内部表示为61h字符串字符串是由双引号括起来的一串字符。
字符串的最大长度是可以变化的,有要求字符串的伪指令来设置。
例如:
“example”定义了一个长度为7的字符串example。
字符串可以用在.copy伪指令中的文件名、.set伪指令中的段名.setsect伪指令中的段地址初始化及.byte数据初始化伪指令中的变量名等场合。
应当特别注意字符常数与字符串的差别,即字符常数代表单个整数值,而字符串只是一串字符。
DSP技术及应用技术及应用33汇编命令汇编命令汇汇编编命命令令是是用用来来为为程程序序提提供供数数据据和和控控制制汇汇编编进进程程的的。
C54x汇汇编编器器共共有有64条条汇汇编编命命令令,根根据据它它们们的的功功能能,可可以以将将汇汇编编命命令令分成分成8类:
类:
(1)对各种段进行定义的命令。
)对各种段进行定义的命令。
(2)对常数(数据和存储器)进行初始化的命令。
)对常数(数据和存储器)进行初始化的命令。
(3)调整)调整SPC(段寄存器)的指令。
(段寄存器)的指令。
(4)对输出列表文件格式化的命令。
)对输出列表文件格式化的命令。
(5)引用其它文件的命令。
)引用其它文件的命令。
(6)控制条件汇编的命令。
)控制条件汇编的命令。
(7)在汇编时定义符号的命令。
)在汇编时定义符号的命令。
(8)执行其它功能的命令。
)执行其它功能的命令。
第一节第一节汇编语言程序的编写方法汇编语言程序的编写方法DSP技术及应用技术及应用例例4-1编写计算编写计算y=a1*x1+a2*x2+a3*x3+a4*x4的汇编源程序的汇编源程序*example.asmy=a1*x1+a2*x2+a3*x3+a4*x4*.title“example.asm”;为汇编源程序取名为汇编源程序取名.mmregs;定义存储器映象寄存器定义存储器映象寄存器STACK.usect“STACK”,10h;分配分配10个单元的堆栈空间个单元的堆栈空间.bssa,4;为系数为系数a分配分配4个单元的空间个单元的空间.bssx,4;为变量为变量x分配分配4个单元的空间个单元的空间.bssy,1;为结果为结果y分配分配1个单元的空间个单元的空间.def_c_int00_c_int00;定义标号定义标号_c_int00_c_int00.data;定义数据代码段定义数据代码段table:
.word
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 软件 开发 过程