DSP原理-第四章课件

上传人:妈**** 文档编号:243002847 上传时间:2024-09-13 格式:PPT 页数:47 大小:2.10MB
返回 下载 相关 举报
DSP原理-第四章课件_第1页
第1页 / 共47页
DSP原理-第四章课件_第2页
第2页 / 共47页
DSP原理-第四章课件_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Company Logo,*,单击此处编辑母版标题样式,TMS320C54x DSP,原理及应用,任课教师 侯兆然,E-mail:,第四章,C54x,应用程序开发及仿真,知识框架,DSP,应用系统开发方法及过程,C54x,汇编程序的编写规范 (,4.1,),C54x,编辑、汇编、链接过程 (,4.3 - 4.5,),C54x,汇编程序的结构 (,4.2,),软件仿真器,Simulator,(,4.6,),汇编语言程序设计(,4.7,部分),Company Logo,第四章,C54x,应用程序开发及仿真,4.0 DSP,应用系统开发方法及过程,数字信号处理的两层工作:,算法研究,-,如何以最小的运算量和存储空间达成既定任务,系统实现,-,除,I/O,部分外,最核心的是算法的软硬件实现,除乘加运算外,卷积、,FFT,等基本算法各有其特殊要求。例如,FFT,采用,C,语言时,倒序运算的时间开销占,15,25%,。,近年来,半导体成本大大降低,,TI,的,5,代芯片价格低于,10,美元,与单片机相当。,Company Logo,第四章,C54x,应用程序开发及仿真,数字信号处理系统的设计过程,系统要求的描述,信号分析,信号处理算法设计,资源分析,硬件结构分析与设计,软件设计与调试,系统集成与测试,根据商业、科研对系统的要求,提出一组系统级的技术指标和说明书,形成一些列技术文档,作为开发依据。,信号维数、频率、带宽、电平范围、信噪比,SNR,、数据吞吐率、实时性等,Matlab,下算法的仿真正确、最简化、运算复杂度最小、最适合硬件实现,对所需的数据吞吐率、存储空间和,I/O,带宽做合理分配,包括对,DSP,芯片的选择、对资源的配置、各模块设计等;系统的软硬件成本也是一个重要因素。,要求设计者对,DSP,、,FPGA,等都有很好的了解。,包括对系统软件和信号处理软件的设计。,系统软件大多由,VC,等高级语言编写,信号处理软件最好用汇编编写。,需要开发环境的支持。,Company Logo,第四章,C54x,应用程序开发及仿真,TMS320C54x,的软件开发过程,Company Logo,第四章,C54x,应用程序开发及仿真,TMS320C54x,提供两种汇编语言:,C,语言 汇编语言,汇编代码可以是,.txt,和,.doc,文件。,TMS320C54x,提供两种开发环境:,非集成开发环境,Simulator,集成开发环境,CCS,Company Logo,第四章,C54x,应用程序开发及仿真,4.1 C54x,汇编程序的编写规范,DSP,汇编语言源程序包括:,指令,- LD,、,MVDK,、,MAC,伪指令,- .text .data .bss .end,等,不生成代码,但对汇编和链接有指示性作用,宏命令,-,具有独立特殊功能,有开发者定义,汇编句法格式:,标号: 助记符 操作数 ;注释,Company Logo,第四章,C54x,应用程序开发及仿真,1.,标号,STACK LOOPS end,2.,助记符,指令用大写:,MAC ADD,伪指令和宏指令用小写:,.bss .data,3.,操作数,MAC,*AR1, *AR2, A, B,4.,注释,约定俗成:头部用,*,,行末用,;,Company Logo,第四章,C54x,应用程序开发及仿真,C54x,的伪指令,伪指令的具体功能有:,将代码和数据汇编进指定的段,为未初始化的变量在存储器中保留空间,控制清单文件是否产生,初始化存储器,汇编条件代码块,定义全局变量,为汇编器指定从中可以获得宏的库,考察符号调试信息,Company Logo,第四章,C54x,应用程序开发及仿真,常用汇编伪指令,Company Logo,第四章,C54x,应用程序开发及仿真,段定义伪指令,汇编器通过,5,条伪指令识别各功能部分:,(,1,),未初始化段,-,预留空间,.,bss,定义变量区、数组等,.,bss,x, 4 ;,为,x,开辟,4,个单元的数据空间,.,usect,定义堆栈区,STACK,.,usect,“STACK”, 10H,开辟,16,个字单元作为堆栈区,段名,STACK,Company Logo,第四章,C54x,应用程序开发及仿真,(,2,),已初始化段,-,分配指令和数据,.text,其后紧跟程序中的指令正文,汇编后生成可执,行代码,存于程序存储器区中。,. data,其后紧跟已初始化数据,有,int,和,word,两种;,. sect,自定义代码和数据段;,Company Logo,第四章,C54x,应用程序开发及仿真,Company Logo,第四章,C54x,应用程序开发及仿真,Company Logo,第四章,C54x,应用程序开发及仿真,Company Logo,第四章,C54x,应用程序开发及仿真,C54x,的宏指令,自定义的一段独立特殊功能代码:,add3,a, d, g,k,add3,.macro,x1, x2, x3,sum3,LD x1, A ;,x1, A,ADD x2, A ;,A,= x1+x2,ADD x3, A ;,A,= x1+x2+x3,STL A, sum3 ;,.,endm,Company Logo,第四章,C54x,应用程序开发及仿真,4.3 C54x,汇编程序的编辑、汇编与链接,汇编器,调试程序,链接器,文本编辑器,.,asm,源文件,.,obj,目标文件,.,out,输出文件,.,cmd,链接命,令文件,.,lst,列表文件,.,map,存储器,映像文件,十六进制,转换程序,HEX500,-,o,-,m,-,l,Company Logo,第四章,C54x,应用程序开发及仿真,段汇编器,常用的汇编命令:,asm500,%1,s 1 x,调用汇编器命令,源文件名,将程序所有定义的符号放在目标文件的符号表中,生成一个,列表文件.,lst,生成一个,交叉汇编表,Company Logo,第四章,C54x,应用程序开发及仿真,lnk500,?,.cmd,链接器,COFF,-,公共目标文件格式,Common Object File Format,COFF,采用代码段和数据段的形式,以便于模块化的编程,使编程和管理更加方便。,连续占有存储空间的代码块或数据块简称为段,是,COFF,文件中最重要的概念。,汇编器和链接器提供一些伪指令来建立和管理各种各样的段。,COFF,文件的三种格式:,COFF0,、,COFF1,、,COFF2,。,Company Logo,第四章,C54x,应用程序开发及仿真,所有,COFF,文件都包括三种形式的段:,.text,文本段(指令代码),.data,已初始化数据段,.bss,(为未初始化变量)保留空间段,段与目标存储器的对应关系,汇编器的任务,:在汇编过程中,根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。,链接器的任务,:分配存储单元,即将目标文件中的段重新定位到目标系统的存储器中,这一过程称为定位或分配,。,Company Logo,第四章,C54x,应用程序开发及仿真,图,4-2,目标文件中的段与目标存储器的关系,编程时,段没有绝对的定位,每个段都默认从,0,地址开始。,汇编器按,5,条命令划分汇编程序的各部分,:,.bss .usect,.text .data .sect,Company Logo,第四章,C54x,应用程序开发及仿真,SPC,对段的处理,汇编器为每个段都安排了一个单独的程序计数器称之为段程序计数器,SPC。,SPC,表示在程序代码或数据段内当前的地址。开始时汇编器将每个,SPC,置0。,(,1,)第一次遇见新段时,,SPC,置为,0,;,(,2,)紧随的同类型程序代码或数据加到段内时,增加相应的,SPC,值;,(,3,)相隔的同类型程序代码或数据合并计数,相应的,SPC,就在先前的数值上继续增加。,链接器在链接时要对每个段进行重新定位。,Company Logo,第四章,C54x,应用程序开发及仿真,2,*,3,*,汇编一个初始化表到.,data,段,*,4,*,5,0000,.data,6,0000,0044,coeff .word 044h,055h,066h,0001,0055,0002,0066,7,*,8,*,在,.,bss,段中为变量保留空间,*,9,*,10,0000,.bss buffer,8,11,*,12,*,仍然在,.,data,段中,*,13,*,14,0003,0456,prt .word 0456h,Company Logo,第四章,C54x,应用程序开发及仿真,15,*,16,*,汇编代码到,.,text,段,*,17,*,18,0000,.text,19,0000,100d,add: LD 0Dh,A,20,0001,f010,aloop: SUB #1, A,0002,0001,21,0003,f842,BC aloop,AGEQ,0004,0001,22,*,23,*,汇编另一个初始化表到,.,data,段,*,24,*,25,0004,.data,26,0004,00cc,ivals .word 0CCh,0DDh,0EEh,0005,00dd,0006,00ee,27,*,28,*,为更多的变量定义另一个段,*,29,*,30,0000,var2 .usect “newvars”,2,31,0001,inbuf .usect “newvars”,8,Company Logo,第四章,C54x,应用程序开发及仿真,32,*,*,33,*,汇编更多代码到,.,text,段,*,34,*,35,0005,.text,36,0005,110a,mpy: LD 0Ah,B,37,0006,f166,mloop MPY #0Ah,B,0007,000a,38,0008,f868,BC mloop,BNOV,0009,0006,39,*,40,*,为中断向量,.,vectors,定义一个自定义段,*,41,*,42,0000,.sect “vectors”,43,0000,0044,.word 044h,088h,0001,0088,源程序的行号,段程序,计数器,目标,代码,汇编语言,源程序,Company Logo,第四章,C54x,应用程序开发及仿真,生成的目标代码,无意义的行不计入目标代码,如第,2,4,行,Company Logo,第四章,C54x,应用程序开发及仿真,链接器,功能:对程序定位(,到存储器中,),是一种相对的定位方式,程序的三种定位方式:,单片机,-,编译时定位(手工配置硬件资源),DSP -,链接时定位(软硬件开发可分离),PC,机,-,加载时定位(依赖操作系统),MEMORY,伪指令,用来,划分,目标系统的存储器配置,空间,,包括对存储器各部分命名,以及规定它们的起始地址和长度。,SECTIONS,伪指令,用来指定链接器将输入段组合成输出段方式,,分配各段进入空间,。,Company Logo,第四章,C54x,应用程序开发及仿真,默认的存储器分配,Company Logo,第四章,C54x,应用程序开发及仿真,File1.obj,.,text1,.,data1,.,bss1,table_1,(,初始化的命名段),u_vars1,(,未初始化的命名段),File2.obj,.,text2,.,data2,.,bss2,table_2,(,初始化的命名段),u_vars2,(,未初始化的命名段),FFT,(初始化的命名段),程序存储器,数据存储器,.text,.,text1,.,text2,.data,.,data1,.,data2,.bss,.,bss1,.,bss2,table,table_1,table_2,u_vars1,u_vars1,u_vars2,FFT,FFT,没有使用,没有配置,没有配置,没有使用,Company Logo,第四章,C54x,应用程序开发及仿真,【例】 链接器命令文件举例。,a.obj b.obj /*,输入文件名 */,-o prog.out /*,指定输出文件的选项*/,-,m prog.map /*,指定,map,文件的选项*/,MEMORY,/*MEMORY,伪指令*/,PAGE 0: ROM:origin=1000h, length=0100h,PAGE 1: RAM:origin=0100h, length=0100h,SECTIONS,/*SECTIONS,伪指令*/,.,text : ROM,.,data : ROM,.,bss : RAM,Company Logo,第四章,C54x,应用程序开发及仿真,Company Logo,第四章,C54x,应用程序开发及仿真,Company Logo,第四章,C54x,应用程序开发及仿真,4.4 C54x,汇编程序的基本结构,顺序结构,分支结构,循环结构,子程序结构,Company Logo,第四章,C54x,应用程序开发及仿真,4.4.1,顺序结构,例,1 z = (,x+y,),- w,*,* ex41.asm z = (,x+y,),*,- w *,*,.title “ex41.asm”,.,mmregs,STACK .,usect,“STACK”, 10H,.,bss,x, 1,.,bss,y, 1,.,bss,w, 1,.,bss,z, 1,.def start,注释文档,正式标题声明,使用,MMR,寄存器,开辟,16,个单元格的堆栈,x,0060H,y,0061H,w,0062H,z,0063H,Company Logo,第四章,C54x,应用程序开发及仿真,.data,table: .word 6, 7, 9,.text,start: STM #0, SWWSR ;,零等待状态,STM #STACK+10H, SP;,STM #x, AR1,RPT #2,MVPD table, *AR1+,LD x, A,ADD y, A,LD A, 3,SUB w, A,初始化赋值(在程序空间):,x 6 , y 7, w 9,SP,栈底,0060,AR1,重复,3,次数据传送:,6,x, 7, y,9 ,(x + y)0,Company Logo,第四章,C54x,应用程序开发及仿真,4.4.3,循环结构,例,3,.title “ex43.asm”,.,mmregs,STACK .,usect,“STACK”, 10H,.,bss,a, 4,.,bss,x, 4,.def start,.data,table: .word 1, 2, 3, 4,.word 8, 6, 9, 7,Company Logo,第四章,C54x,应用程序开发及仿真,.text,start: STM #0, SWWSR ;,STM #STACK+10H, SP;,STM #a, AR1,RPT #7,;,降低时间开销,MVPD table, *AR1+,STM #a, AR1,STM #x, AR2,STM #2, AR3,LD *AR1+, T,MPY *AR2+, A,loop1,: LD *AR1+, T,MPY *AR2+, B,MAX A,BANZ,loop1,*AR3-,(AR3)!=0,(AR3)=0,Company Logo,第四章,C54x,应用程序开发及仿真,STL A, z,end: B end,.end,注意:,循环体的设计,尤其是找出循环规律,设计循环控制条件是循环程序设计的关键。,Company Logo,第四章,C54x,应用程序开发及仿真,4.4.4,子程序结构,例,4,.title “ex44.asm”,.,mmregs,STACK .,usect,“STACK”, 10H,.,bss,x, 4,.,bss,a, 4,.,bss,y, 1,.def start,.data,table: .word 1*32768/10;,?,.word 2*32768/10,Company Logo,第四章,C54x,应用程序开发及仿真,.word -3*32768/10,.word 4*32768/10,.word 8*32768/10,.word 6*32768/10,.word -4*32768/10,.word -2*32768/10,.text,start: STM #0, SWWSR,SSBX FRCT,STM #STACK+10H, SP,STM #x, AR1,RPT #7,MVPD table, *AR1+,Company Logo,第四章,C54x,应用程序开发及仿真,CALL,SUM,end: B end,SUM,: STM #x, AR2,STM #a, AR3,RPTZ A, #3,MAC *AR2+, *AR3+, A,STH A, y,RET,.end,调,用,返回,结束,Company Logo,第四章,C54x,应用程序开发及仿真,4.5,软件仿真器,Simulator,Simulator,是一种很方便的软件调试工具,利用它调试程序最为简单,并且不需要目标硬件,在,PC,机上运行即可。,编制批处理文件,Als.bat,,进入仿真环境,它包括:,asm500.exe,lnk500.exe,sim54x.exe,Company Logo,第四章,C54x,应用程序开发及仿真,Disassemble,窗口:,显示源程序,以及存储器地址,CPU,窗口:,显示,CPU,中累加器,A/B,的内容,以及,CPU,寄存器(,MMR,)的内容,Command,窗口:,手动键入各种仿真命令,Memory,窗口:,检查或修改存储器中的内容,Company Logo,第四章,C54x,应用程序开发及仿真,一些仿真命令:,1,)进入:,SIM54XW,2,)退出:,QUIT,3,)加载:,load ,4,)运行:,run,5,)步进:,step,6,)复位:,reset,restart,7,)退出:,ESC,键,8,)检查程序时间开销:?,CLK,9,)清除过往命令:,CLS,Company Logo,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!