DSP期末考试试卷.pdf
第一套填 空 题(共 30分,每 空 1 分)I.DSP的狭义理解为 数字信号处理器,广义理解为 数字信号处理方法。2.在直接寻址中,指令代码包含了数据存储器地址的低7位。当 S T 1中直接寻址编辑方式位CPL=0 时,与 DP相结合形成16位数据存储器地址:当 ST1中直接寻址编辑方式位CPL=1 时、加上SP基地址形成数据存储器地址。3.TMS320c5 4 有两个通用引脚,BIO和 XF,BIO 输入引脚可用于监视外部接口器件的状态;XF 输出引脚可以用于与外部接口器件的握手信号。4.累加器又叫做 目的寄存器,它的作用是存放从A L U 或乘法器/加法器单元输出的数据。它的3932保护位31 16高阶位15-0低阶位存放格式为5.桶形移位器的移位数有三中表达方式:立即数:ASM:T 低 6 位6.DSP可以处理双16位或双精度算术运算,当 C16=0 位双精度运算方式,当 C16=l为 双 16位运算方式。7.复位电路有三种方式,分别是 上电复位;手动 复 位;软件复位。8.立即数寻址指令中在数字或符号常数前面加一个#号,来表示立即数。9.位倒序寻址方式中,AR0中存放的是 FFT点 数 的 半。10.一般,COFF目标文件中包含三个缺省的段:.text 段;.data 段 和.b s s 段。11.汇编源程序中标号可选,若使用标号,则标号必须从第 一 列 开始;程序中可以有注释,注释在第一 列开始时前面需标上星 号 或 分 号,但在其它列开始的注释前面只能标分_O12.C5402有 2 3 条外部程序地址线,其程序空间可扩展到 1M,内程序区在 第 013.指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。ADD14,AA 00 0000 1200A 00 0000 2700*AR3+数据存储器C-XR3-gWQ-C 1AR3 0101OlOOh 1500OlOOh 1500二、简 答(共 40分)I.TMS320c54x有多少条16位总线?这些总线各有什么作用?(6 分)答 C54x共有4 组 8 条 16位总线1条程序总线(PB):传送取自程序存储器的指令代码和立即操作数。3 条数据总线(CB、DB、EB):CB和 EB传送从数据存储器读出的操作数;EB传送写到存储器中的数据。4 条地址总线(PAB、CAB、DAB、EAB)传送相应指令所学要的代码。2.TMS320C54X片内存储器般包括明卜些种类?如何控制存储器片内或片外的分配?(6分)答:TMS320c54x的片内存储空间分为3 个可选择的存储空间:64K的程序空间,64K的数据空间利64K的 I/O空间,所有TMS320c54x芯片都包括RAM、SARAM、DARAM,程序空间:MP/MC=14000HFFFFH片外MP/MC=04000HEFFFH片外FF00HFFFFH片内OVLY=10000H-007FH保留0080H-007FH片内OVLY=00000H-3FFFH片外数据空间:DROM=1F000HFEFFH只读空间FF00HFFFH保留DROM=0F000HFEFFH片外I.当TMS320c54x CPU接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?(6分)答(1)出现多个中断时,此中断的优先级最高(2)INTM=0 允许全局中断(3)1MR中的响应相应位为1,开放此中断。2.循环寻址中,如何确定循环缓冲的起始地址?如果循环缓冲大小为17,其起始地址必须从什么地址开始?BK初始化为多少?(4 分)3.TMS320c54x硬件复位地址为多少?如何确定中断向量地址?计算INTO(IPTR=001H)的中断向量地址。(6 分)答:复位后,复位向量地址为:0080H确定地址方式:IPTR+左移2 位后的中断向量序列号10H左移2 位后成为40H,IPTR=001H,则中断向量地址为OOCOH4.若辅助寄存器ARO的值为0 x0005H,AR3的值为0 x030FH,请分别给出下列寻址方式修改后的辅助寄存器的值。(6 分)*AR3+AR3=O31OH*AR3+0AR3=0314H*AR3(15)AR3=0324H5.分别解释以下指令的功能。(6 分)LD#80h,A;把立即数8()H 装入累加器ALD80h,A;把 80H为地址的数据装如累加器ALD#80h,16,A;把立即数80H左 移 16位后装如累加器A三、程序填空(共 22分,每空2 分)1.实现计算z=x+y-w的程序。.title example 1.asmSTACK.mmregs.usect STACK”,1 Oh.bss x,1.bssy,1.bssw,1.bssz,1.defstart,datatable:.word10,26,23.textstart:STM#0,SWWSRSTM#STACK+10h,SP;初始化堆栈指针SPSTM#x,ARlRPT#2MVPDtablc,*ARl+;数据从程序存储器传送到数据存储器CALLSUMBend:BendSUMB:LDx,AADDy,ASUBw,A:实现减法运算STLA,zRET,end2.实现对数组X5=1,2,3,4,5的初始化,然后将数据存储器中的数组X5复制到数组 丫。最后实现数组X 和数组Y 中对应元素相乘并累加,即 z=l*l+2*2+3*3+4*4+5*5.mmregs.bss.bss.bss.defx,5y,5z,1starttable:.word,text1,2,3,4,5start:STM#x,RPT _4_ARIX5STMMVPDSTM#x,#y,AR3table,*AR1+;从程序存储器传送到数据存储器数组AR2RPT 4_MVDD*AR1,*AR3;从数据存储器数组X5传送到Y5SSBX FRCT;准备整数乘法STM#x,AR2STM#y,AR3STM#z,AR4RPTZ 4MAC*AR2+.*AR3+,ASTL A,*AR4End:B end.end四、分析程序回答问题(共8分),def _c_intOO mmregsstack:usect stackOh.bss a,4 bss x,4.bss y,l.datatable:,word 1,2,4,3,word 8,6,4,2,text_c_intOO:STM#stack+10h,spSTM#a,ARIRPT#7MVPD table,*ARl+CALL sumend:B endsum:STM#a,AR3STM#x,AR4RPTZ A,#3MAC*AR3+,*AR4+,ASTL A,yret.end(1)说明该程序的功能:(4分)答:al*xl=a2*x2+a3*x3+a4*x4(2)说明以下各量的理论值(4分)A:2A a l的地址:81H 内容:1ARI:88 H AR3:84H第二套1.T I 公 司 的 定 点 D S P 产 晶 主 要 有 TMS320c2000 系 列、TMS320C5000系列和TMS320c600c 系列。2.,C54x D SP中传送执行指令所需的地址需要用到PAB、CAB、D A B和 EAB 4条地址总线。3.D S P 的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。4.,C54x DSP的内部总存储空间为192K字,分成3 个可选择的存储空间:64K字的程序存储空间、64K字的数据存储空间和64K字 的 I/O 空 间。5.从功能结构上,C54X DSP的 CPU可以划分成运算部件和 捽制部件两大部分。6.C54xDSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、一迪接 寻 址、存储器映象寄存器寻址、堆栈寻址。7.在,C54x DSP寻址和指令系统中,Xmem和 Ymem表 示 16位 双 寻 址 操 作 数,Dmad为 16位立即数,表 示 数 据 存 储 器 地 址,Pmad为 16位立即数,表 示 程序存储器地 址。8.程序计数器的值可以通过复 位 操 作、顺 序 执 行 指 令、分 支 转 移,累加器转移,块重复,子程序调用,从累加器调用子程序,中断等操作改变。9.C54xDSP芯片采用了 6 级流水线的工作方式,即一条指令分为 预 取 指、取指、译码、寻 址、读数和执行6 个阶段。10.解 决 M M R写操作的流水线冲突时,一般可用采用推荐指令和 插入空操作指令 的方法。11.5C54x DSP定时器由3 个 16位存储器映射寄存器组成:定时器寄存器(TIM)、定时器周期寄存器(PRD)和 定时器捽制寄存器(TCR)。12.主机接口(HPL Host Port Interface)是 TMS320c54x系列定点芯片内部具有的 种接口部件,主要用于DSP与其他总线或CPU进行通信.13.5C54xDSP的 指 令 系 统 有 助 记 符 指 令 和代 数 指 令 两种形式。14.C O FF目标文件中.text段通常包含 可 执 行 代 码,.data段通常包含己初始化的数据,.bss段 中 通 常 为 未 初 始 化 的 数 据 保留空间。15.DSP芯片的开发工具可以分为代 码 生 成 工 具 和代 码 调 试 工 具 两类。1.BANZ 2000h,*AR3-指令执行前PC1000PCAR3 005 AR32.CMPR GT,AR33.ADD*AR3+,14,A指令执行前TC1TCAROFFFFAROAR37FFFAR3指令执行后2000004指令执行后0FFFF7FFF指令执行前指令执行后A 00 0540 1200c 0AR3 0101SXM 1OlOOh 1500指令执行后A 00 0000 1200B 00 0000 17EEC 1SXM 15.MPY*AR3+,A指令执行前指令执行后A00 0000 1200A00 0000 0040T0004T0004AR30100AR30101Data Memory0100h 0010五、程序题(15分)0100h0010写出计算 日 的主要汇编程序,并给程序添加注释,画出程序的流程图。解:程序及注释:,bss x,20;给变量x 分配20个字单元,bss y,1 ;给变量y 分 配 1个字单元STM#x,ARI;Wx 地址STM#19,AR2;设置循环次数LD#0,A;累加器清零loop:ADD*AR1+,A;累加 x 分量BANZ kwp,*AR2-;循环是否结束,没有结束则继续累加STL A,y;把结果存入y流程图:第三套1、用 C55x汇编语言实现计算4y=Xaixi的程序。(10分)答:mpym*AR0+,*AR1+,ACOmpym*ARO+,*AR1+,AC1add AC 1,ACOmpym*ARO+,*AR1+,AC1add AC 1,ACOmpym*ARO+,*AR1+,AC1add AC1,ACO或者:mpym*AR0+,*AR1+,ACOllrpt#2macm*AR0+,*AR1+,ACO2、用 C55x汇编语言实现计算%=七 一%的程序。(10分)答:mpym*AR0+,*AR1+,AC3masm*AR0+,*AR1+,AC33、以 8 点的FFT为例,用 C55x的汇编语言实现FFT的算法,并且解释该算法的实现方法。(20 分)答:.sect fft_codeaadd#(ARGS-Size+l),SPmov mmap(ST 1_55),AR2mov mmap(ST3_55),AR3mov AR2,fft.d_STlmov AR3,fft.d_ST3btst#O,T1,TC1mov#0 x6340,mmap(STl_55)mov#0 x lf22,mmap(ST3_55)xcc do_scale,TClmov#0 x6300,mmap(ST 1_55)do_scale;Adjust stack for local vars;Save ST1,ST3;Check SCALE flag set;Set CPL,XF,SATD,SXAM,FRCT(SCALE=1);Set:HINT,SATA,SMUL;Set CPL,XF,SATD,SXAM(SCALE=2)mov T2,fft.d_T2II mov#1,ACOmov ACO,fft.d_LII sfts ACO,TOmov ACO,fft.d_Nmov XAR1,XCDPmov XSP.XAR4add#fft.d_temp,AR4mov XARO,XAR1;Save T2;Initialize L=1;TO=EXP;N=iEXP;CDP=pointer to U;AR4=pointer to temp;ARI points to sample bufferinnerjoop;End of inner loopam ar*CDP+mov TO,T1mov XAR0,XAR5;Copy externd bits to XAR5outerjoopmov fft.d_L,TO;for(L=l;L=EXP;L+);note:Since the buffer isII mov#2,ACOsfts ACO,TOneg TO;arranged in re,im pairs;the index to the buffer;is doubledII mov fft.d_N,AClsftl AC1,TOmov ACO,TOII sfts ACO,#-1mov AC0,AR0II sfts ACO,#-1sub#1,ACOmov mmap(AC0L),BRC0sub#1,AC1mov mmap(AC 1 L),BRC 1add AR1,AROmov#0,T2;But the repeat coutners;are not doubled;LE=2L;LE1=LE1;Init mid_loop counter;BRC0=LEM;Init inner loop counter;BRC1=(NL)-1;j=oII rptblocal midJoop-1mov T2,AR5mov T2,AR3add AR0,AR5add#1,AR5,AR2add AR1,AR3;for(j=O;jLEl;j+);AR5=id=i+LEl;AR5=pointer to Xid.re;AR2=pointer to Xid.im;AR3=pointer to Xi.reII rptblocal inner_loop-l;mpy*AR5+,*CDP+,AC0for(i=j;i0mov fft.d_STl,AR2mov fft.d_ST3,AR3mov AR2,mmap(ST 1_55)mov AR3,mmap(ST3_55)mov fft.d_T2,T2aadd#(Size-ARGS-l),SPret;Update k for pointer to Uk;Update j;End of mid-loop;Update L;End of outer-loop;Restore ST1,ST3,T2;Reset SP.end第四套1.DSP的狭义理解为 数字信号处理器,广义理解为 数字信号处理方法。2.在直接寻址中,指令代码包含了数据存储器地址的低_ Z _ 位。当 S T 1中直接寻址编辑方式位CPL=0 时,与 DP相结合形成16位数据存储器地址;当 ST1中直接寻址编辑方式位CPL=1 时,加 上 SP基地址形成数据存储器地址。3.TMS320c5 4 有两个通用引脚,BIO和 XF,BIO 输入引脚可用于监视外部接口器件的状态;XF 输出引脚可以用于与外部接口器件的握手信号。4.累加器又叫做 目的寄存器,它的作用是存放从A L U 或乘法器/加法器单兀输出的数据。它的393231 16150存放格式为保护位高阶位低阶位5.桶形移位器的移位数有三中表达方式:立即数;ASM;T 低 6 位6.DSP可以处理双16位或双精度算术运算,当 C16=0 位双精度运算方式,当 C16=l为 双 16位运算方式。7.复位电路有三种方式,分别是 上电复位;手 动 复 位;软件复位。8.立即数寻址指令中在数字或符号常数前面加一个#号,来表示立即数。9.位倒序寻址方式中,AR0中存放的是 FFT点数的一半。10.一般,COFF目标文件中包含三个缺省的段:.text 段:.data 段 和.b s s 段。11.汇编源程序中标号可选,若使用标号,则标号必须从第 列 开始;程序中可以有注释,注释在第一列开始时前面需标上星 号 或 分 号,但在其它列开始的注释前面只能标分适_。12.C5402有 2 3 条外部程序地址线,其程序空间可扩展到 1M,内程序区在第 013.指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。ADD*AR3+,14,AA 00 0000 1200A 00 0000 2700C1C IAR3 0101AR3 0100数据存储器OlOOh 1500OlOOh 1500