DSP原理与应用课程作业_第1页
DSP原理与应用课程作业_第2页
DSP原理与应用课程作业_第3页
DSP原理与应用课程作业_第4页
DSP原理与应用课程作业_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1DSP原理与应用课程作业1.3简述DSP应用系统的一般设计过程答:确定系统性能指标

核心算法模拟和验证

选择DSP芯片及其他系统组件

软件设计和调试

硬件设计和调试

系统测试。集成2第1页/共50页第1次作业2.1TMS320C55xDSP有哪些特性?答:TMS320C55xDSP主要特性如下所示先进的多总线结构40位算术逻辑运算单元(ALU),能够进行高精度的算术和逻辑操作。16位辅助ALU单元,能够和主ALU并行进行简单的算术运算。两个17位×17位的MAC(MultiplyandAccumulate)单元,能够在单周期内执行两组惩罚与加法操作64字节的指令缓冲队列,能够用作程序Cache,高效完成块重复操作3第2页/共50页4个40位的累加器,能够存储计算结果,减少对存储器的方问8个增强的辅助寄存器,可用作数据寻址。4个暂存数据寄存器满足数据处理的要求。循环寻址,最多支持5个循环缓冲单指令重复、块重复操作支持。源代码全兼容所有的TMS329C54x器件。4第3页/共50页第1次作业2.2简述TMS320C55xDSP的CPU的组成?请写出C55x所包含的累加器,并回答累加器有多少位?答:TMS320C55xDSP的CPU主要由内部地址总线和数据总线、存储器接口单元、指令缓冲单元(IUnit)、程序流单元(PUnit)组成。C55x包含4个累加器,分别是AC0,AC1,AC2,AC3累加器有40位。5第4页/共50页2.3C55x支持多少个中断?如果需要使能TMS320VC5509A的INT1,IER0或IER1及INTM的值分别应为多少?答:C55x支持32个中断。如果需要使能TMS320C5509A的INT1,IER1的第0位必须为1.INTM的值应为0(全局使能)。6第5页/共50页第1次作业2.4TMS320C55xDSP提供了一个统一的数据/程序空间,其寻址空间为多大?当CPU从程序空间读取程序代码时,使用多少位地址?程序空间字节地址范围是多少?当CPU访问数据空间时,使用多少位地址?数据空间字地址范围是多少?一个字有多少位?答:TMS320C55xDSP提供了一个统一的数据/程序空间的寻址空间为16MB(16兆字节)或8MW(8兆字)。当CPU从程序空间读取程序代码时,使用24位地址。程序空间字节地址范围是0x000000-0xFFFFFF

当CPU访问数据空间时,使用23位地址。

数据空间字地址范围是0x000000-0xFFFFFF。

一个字(word)为16位。7第6页/共50页第1次作业2.5TMS320VC5509A片内存储器DARAM字地址范围是多少?DARAM的大小为多少?存储器映射寄存器位于什么地方?有多大?

映射的地址可以定位程序的代码和数据吗?答:TMS320VC5509A片内存储器DARAM字地址范围是0x000000~0x007FFF。DARAM的大小为64KB。存储器映射寄存器位于数据空间的最前面的96个地址(0x000000-0x00005F字地址),大小为96个字或192个字节。映射的地址不能定位程序的代码和数据8第7页/共50页第2次作业2.6ICETEK-VC5509-A评估板上字节地址起止范围为0x048000-0x04FFFF对应的哪种存储器?这段存储空间有多大?外扩寄存器地址0x400001(字地址)对应的哪个CE空间?答:这段地址对应的存储器为SDRAM。这段存储空间的大小32KB。外扩存储器地址0x400001(字地址)对应的CE2空间。9第8页/共50页第2次作业3.1CCS软件开发工具有哪些功能?答:CCS软件开发工具具有:集成开发环境(软件仿真和硬件仿真)工程管理器和代码编辑器代码产生工具代码调试工具代码分析工具(Profiler的使用)10第9页/共50页第2次作业3.2何谓DSK,EVM?答:DSK:DSP初学者套件(DSPStarterKit)DSK是TI公司提供给初学者进行DSP编程学习的一套廉价的实时软件调试工具(包括CCS限定版和DSK板)。TMS320C55xLow-PowerOptimizationDSPStarterKit(DSK)TMS320C5509(U.Soartnumber)495SU.STMS320C55xTMDSPStarterKit(DSK),TMS320C5510DSPbased395SU.SEVM:评估模板(EvaluationModule)评估模板是一种低成本的开发板,在EVM板上一般配置了一定数量的硬件资源,可用来进行DSP芯片评价、性能评估和有限的系统调试11第10页/共50页第2次作业3.3CCS的Simulator和Emulator有何区别,在哪些情况下合适使用Simulator调试程序,哪些情况下必须使用Emulator调试程序。答:CCS程序的仿真有两种模式:软件仿真(Simulator)和硬件仿真(Emulator).CCS的Simulator是指CCS工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。软件仿真无需目标板和仿真器等硬件就可以开始软件编程,缺点是仿真速度慢而且无法仿真某些外设的功能。12第11页/共50页第2次作业硬件仿真需要用户具备目标板,如TI的DSK、EVM及用户设计的系统板,仿真程序会利用开发系统将代码下载到DSP芯片中。程序在目标板中运行,仿真软件只是将结果读出来显示。目标板一般是通过XDS510开发系统与主机相连。硬件仿真的优点是仿真速度快,仿真结果与系统实际一致。有并口、ISA、PCI和USB仿真器。现TI新推出告诉XDS560开发系统。在外设程序调试及系统程序联调时需使用硬件仿真。13第12页/共50页第2次作业3.4简述采用CCS及DSP系统开发DSP程序的主要步骤(包括软件仿真Simulator和硬件仿真Emulator)。答:1.创建新的工程文件。2.创建、编写源代码文件(包括.c、.asm、.h等源文件)和链接器命令文件(.cmd)。3.将工程文件中应包含.c和.asm源代码文件、链接器命令文件、库文件(.lib)添加到工程中。4.编译产生库文件(.lib)和可执行程序(.out)。(通常1---4步Simulator)5.加载和运行可执行程序。调试代码,修改程序错误,重新编译产生、加载和运行科执行程序(.out)-算法软件(通常先Simulator,然后Emulator)-驱动软件(通常Emulator,需连接DSP硬件系统)14第13页/共50页第3次作业3.5在本章课上讲解的图形显示示例的输入窗口“GraphPropertyDialog”对话框为什么要对图形的标题、起始地址、缓冲区大小、显示数据大小、DSP数据类型、自动标尺属性及最大Y值作如下更改?GraphTitle:InputStartAddress:inp_bufferAcquisitionBufferSize:100DisplayDataSize:100DSPDataType:16-bitsignedintegerAutoscale:OffMaximumY-value:100015第14页/共50页第3次作业GraphTitle:Input给输入数据图形显示窗口命名为“Input”,有助于区分多个同时打开的窗口。StartAddresss:inp_buffer显示由文件的输入/输出从sine.dat文件读入到inp_buffer指针内正弦曲线数据AcquisitionBufferSize:100获取的缓冲个数为100.DisplayDataSize:100显示数据个数为100.16第15页/共50页DSPDataType:16-bitsignedinteger应与待显示数据类型一致,输入正弦波数据位16比特有符号的整数。Autoscale:Off缺省为On,纵轴的最大值就是所显示数据的最大值。为比较处理前后的幅值的放大,将自动标尺关闭。MaximumY-value:1000将最大Y值设置为1000.输入正弦曲线最大值为99,最大放大倍数为10,最大Y值1000能显示放大后曲线所有的点。17第16页/共50页3.6给出CCS提供的代码分析工具Profiler各项统计数据的含义?答:CodeSize代码长度Incl./Excl.Count命中次数Incl./Excl.Maximum最大时钟周期数Incl./Excl.Minimum最小时钟周期数Incl./Excl.Average平均时钟周期数以Incl.为前缀的统计信息表示将剖析区域的子程序调用计算在内。以Excl.为前缀的统计信息表示将剖析区域的子程序调用排除在外。18第17页/共50页第3次作业4.1TMS320C55xDSP支持哪3种类型的寻址方式?它们是如何寻址的?答:TMS320C55xDSP支持的3种类型的寻址方式分别是绝对寻址方式、直接寻址方式、间接寻址方式。绝对寻址方式:指令里有一个地址的全部或比分,之时目的地址。直接寻址方式:使用偏移地址指示目的地址。间接寻址方式:使用指针指示目的地址。19第18页/共50页第3次作业4.2设指令执行前DPH=3,DP=.dp=0x2000,XAR0=0x32000Datamemory0x0320000x032001

0x0320020x032003分别指出下列指令所使用的寻址方式及指令执行后XAR0、AC0、T2和T3的值:mov*AR0+,AC0mov@2003h,T2mov*abs16(#2002h),T30x00000x11110x22220x333320第19页/共50页答:(1)mov*AR0+,AC0;间接寻址方式执行后:AC0=0x0000,XAR0=0x32001,其他不变。(2)Mov@2003h,T2;直接寻址方式执行后:T2=0x3333,其它不变。(3)mov*abs16(#2002h),T3;绝对寻址方式执行后:T3=0x2222,其它不变。21第20页/共50页第3次作业4.3TMS320C55xDSP的指令集包含了哪几种基本类型的指令?答:算术运算指令

逻辑运算指令

移动指令

程序控制指令22第21页/共50页第3次作业4.4分析下列TMS320C55xDSP汇编语言代码,请在每一行语句后对其功能进行注释。mpym*AR2+,*AR3+,AC0;AC0=(*ar2)*(*AR3);AR2=AR2+1,AR3=AR3+1||rpt#4;与上条指令并行,下一条指令执行5次masm*AR2+,*AR3+,AC0;AC0=AC0-((*AR2)*(*AR3));AR2=AR2+1,AR3=AR3+123第22页/共50页第4次作业5.1简述增强性能的DSP代码开发流程。

答:增强性能的DSP代码开发流程可分为4个步骤:步骤1:写C代码根据任务写C语言程序,用CCS代码产生工具编译产生DSP内可运行代码,证明其功能的正确性。剖析代码,分析确定代码是否足够有效如果足够有效,则代码开发完成;如果不是,进入步骤2步骤2:优化C代码利用C代码优化方法对代码进行优化,再次编译、剖析。进行更多的C优化。如果仍然有效性不够,进入步骤3。24第23页/共50页步骤3:写汇编代码分析C代码中存在的影响性能的关键低效率段,用汇编代码编写它们,再次剖析。如果仍然有效性不够,进入步骤4.步骤4:优化汇编代码优化汇编代码,再次优化,直至足够有效。25第24页/共50页第4次作业5.2为什么通常需要采用C语言和汇编语言的混合编程?答:在数字信号处理器的软件开发中一直存在一个两难的选择:C/C++语言开发容易、移植性强、但效率较低,不能满足实时性要求;汇编语言效率高,对硬件的操作更为直接,但程序编写复杂易读性差、移植性不好。比较好的方法是在二者间折中,即程序的主体框架和对实时性要求不高的部分采用C/C++语言,而算法则采用汇编语言,这样能够充分发挥二者的优点,解决易读性和效率之间的矛盾。26第25页/共50页第4次作业5.3何谓小存储器模式?何谓大存储器模式?答:在小存储器模式下,代码段和数据段的长度和位置受到一定的限制。如下列段都必须在长度为64KW的存储器的一个单页中:.bss和.data段(存放所有的静态和全局变量).stack和.sysstack段*(theprimaryandsecondarysystemstacks:主系统堆栈和二级系统堆栈).sysmem段(动态存储空间).const段在小存储器模式下,.test段(代码段)、.switch(状态转化段)及.cinit/.pint段(变量初始化段)的长度和位置不受限制。在小存储器模式下,编译器的数据指针为16位。23-bitXARn寄存器的高7位指向.bss段,并在程序运行时始终指向该段。*susstack段为C55xDSP所特有27第26页/共50页如果在编译中设置-ml选项,则编译器按照大存储器模式编译程序。大存储器模式下可以更加方便地存放数据,而不必过多的考虑数据页的限制,数据指针为23位,而主堆栈和二级堆栈必须放到同一页中;除了代码段可以跨越页边界以外,其它段都不能跨越页边界,也就是说除代码段外的其它所有的段都只能放在一页存储器之中,不能跨页存放但和小存储器模式相比,这些段可以分别放在不同的叶中,而不需要放啊同一页中。28第27页/共50页第4次作业5.4分析下列ICETEK-VC5509-A评估板C语言代码,请在每一语句后对其功能进行注释。并说明px指向的存储器区的物理存储器的类型。

main()//主函数{ inti;//定义局部整型变量i unsignedint*px;//定义指向无符号整型变量的指针变量px px=(unsignedint*)0x20000;//px字地址为0x20000,字节地址为0x40000//且px指向unsignedint类型

for(i=0;i<32;i++,px++)(*px)=0;//以上for循环的功能是从字地址0x20000开始32个字清0}在ICETEK-VC5509-A评估板中px指向的存储器区的物理存储器为SDRAM29第28页/共50页第4次作业5.5TMS320C55xDSP汇编语句包含哪几个部分?编写汇编语句需要注意哪些问题?答:汇编语言语句格式可以包含4个部分,标号域、助记符域、操作数域和注释域。汇编语言语句格式如下:Mnemonicsyntax:[label][:]mnemonic[operandlist][;comment][标号][:]助记符[操作数列表][;注释]30第29页/共50页编写汇编语句需要注意如下4个方面的问题:语句必须以标号、空格、星号(*)、分号(;)开始。标号为可选项,如要使用标号,则必须从第1列开始。每个域必须有1个或多个空格分开。Tab等效于空格。注释为可选项,开始于第1列的须用星号或分号(*或;)开始,但其它列开始的注释前面只能标分号。31第30页/共50页第4次作业5.6汇编伪指令.def,.ref和.global起到了什么作用?答:.def符号(sumbol)----在当前文件中定义一个符号,可以被其它文件使用。.ref符号----在其它文件中定义,可以在本文件中使用的符号。.global符号----其作用相当于.def、.ref效果之和。32第31页/共50页第4次作业5.7TMS320C55xDSPC语言和汇编语言的混合编程方法主要有哪两种?各有什么特点?答:C语言和汇编语言的混合编程有如下主要方法和特点:1.在C语言中直接嵌套汇编语句特点:嵌套汇编语句的语法十分简单,只要把需要嵌套的汇编语句前面加上asm标示符,左右加上一个双引号并用小括号括住即可asm(“assemblertext”);比较适合完成对硬件进行简单操作。直接嵌套的方法要十分小心,C语言编译器并不检查和分析嵌入的汇编语句,而嵌入的汇编语句很可能改变C语言的运行环境。采用该方法实现较复杂的功能,会造成程序的可读性较差,并影响程序的可移植性。33第32页/共50页2.C语言和汇编模块的接口特点:独立编写C语言程序和汇编程序,C语言通过函数调用汇编子程序,这样既可以提高程序的运行效率,又保证了程序的可移植性,而且程序的结构性较好,并不影响C语言编译器的优化功能。必须遵从C语言调用子函数的规则,这些规则包括C/C++中寄存器的使用、函数的结构及调用规则等。34第33页/共50页第4次作业5.8定义如下结构体类型structbig,请分别给出以下3个C函数传送参数和返回值所用的寄存器或堆栈。structbig{longx[10];};(1)longfn(int*p1,inti2,inti3,inti4);(2)intfn(structbigb,int*p1);(3)voidfn(longl1,longl2,longl3,int*p4,int*p5,int*p6,int*p7,int*p8,inti9,inti10);35第34页/共50页structbig{longx[10]};AC0AR0T0T1AR1(1)longfn(int*p1,inti2,inti3,inti4);T0AR0AR1(2)intfn(structbigb,int*p1);AC0AC1AC2AR0AR1(3)voidfn(longl1,longl2,longl3,int*p4,int*p5,AR2AR3AR4T0T1int*p6,int*p7,int*p8,inti9,inti10);

36第35页/共50页第4次作业5.9C语言主程序如下:externintexp(int*,int*);intAi[8]={100,2,3,4,5,6,7,8};intXi[8]={9,3,2,0,1,9,7,1};inty;voidmain(){y=exp(Ai,Xi);}用C55x汇编语言实现C可调用函数intexp(int*,int*),计算37第36页/共50页.global_exp.text_exp;;Indirectaddressingwithparallelprocessing;mpym*AR0+,*AR1+,AR0movAC0,T0Ret.end38第37页/共50页第5次作业5.10DSP/BIOS支持的4种类型线程,按优先级由低到高给出这4种线程。说明任务(TSK)的优先级范围。答:按优先级由低到高DSP/BIOS支持的4种线程为:后台线程(IDL)、任务(TSK)、软件中断(SWI)、硬件中断(HWI)。任务(TSK)的优先级为1(最低)-(最高)。39第38页/共50页第5次作业6.116位定点数0xD000,分别计算该数Q15和Q0十进制数的大小。答:0xD000=1101000000000000BQ15:-20+2-1+2-3=-1+0.5+0.125=-0.375Q0:-215+214+212=-3*212=-3*4096=-1228840第39页/共50页第5次作业6.2已知x=0.4567,试将该数转换为Q15定点数(考虑舍入和不舍入两种情况)。答:0.4567*32768=14965.1456舍入14965(十进制)或0x3A75(十六进制)不舍入14965(十进制)或0x3A75(十六进制)41第40页/共50页第5次作业6.3采用完整的TMS320C55xDSP的C语言实现N点Q15定标的余弦波信号产生函数。要求信号采样频率为44100Hz,包含2400Hz、16000Hz两种频率成份,幅度均为0.48。解:C语言编程实现如下:#include<math.h>#defineT1/44100//0.0000226757#definef12400#definef216000#definePI3.141592642第41页/共50页#definetwo_pi_f1_T(2*PI*f1*T)/*2*pi*f1/Fs*/#definetwo_pi_f2_T(2*PI*f2*T)/*2*pi*f2/Fs*/voidsignal_gen(int*x,intN){floattemp;inti;for(i=0;i<N;i++){temp=0.48*cos((float)two_pi_f1_T*i);temp+=0.48*cos((float)two_pi_f2_T*i);X[i]=(int)((0x8000*temp)+0.5);}}43第42页/共50页第6次作业6.4用C55x汇编语言实现C可调用块实现FIR滤波器函数voidfir(int*in,unsignedintM,int*h,unsignedintL,int*out,int*x); 函数参数in:滤波器输入数据指针M:输入抽样数h:FIR系数指针L:FIR滤波器阶数out:

输出指针x:信号缓冲指针44第43页/共50页第6次作业6.5请给出调用C55xDSPLIB所需用的.h文件和.lib文件。答:所需包含头文件名dxpib.h

所需的需链接的库文件名为55xdsp.lib(小模式)或55xdspx.lib(大模式)45第44页/共50页第6次作业7.1分析下列ICETEK-VC5509-A评估板C语言时钟初始化函数代码,请在语句后注释。ICETEK-VC5509-A评估板TMS320VC5509的CLKIN焊接的晶振为12MHz,请计算执行此函数后评估板的主频。答:voidCLK_init()//定义无参数时钟初始化函数CLK_int,返回值类型viod{ioportunsignedint*clkmd//定义指向I/O空间unsignedint变量指针变量cldmdclkmd=(unsi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论