1.DSP的狭义理解为数字信号处理器,广义理解为数字信号处理方法。2.在直接寻址中,指令代码包含了数据存储器地址的低7位。当ST1中直接寻址编辑方式位CPL=0时,与DP相结合形成16位数据存储器地址;当ST1中直接寻址编辑方式位CPL=1时,加上SP基地址形成数据存储器地址。3.TMS320C54有两个通用引脚,BIO和XF,BIO输入引脚可用于监视外部接口器件的状态;XF输出引脚可以用于与外部接口器件的握手信号。4.累加器又叫做目的寄存器,它的作用是存放从ALU或乘法器/加法器单元输出的数据。它的存放格式为5.桶形移位器的移位数有三中表达方式:立即数;ASM;T低6位6.DSP可以处理双16位或双精度算术运算,当C16=0位双精度运算方式,当C16=1为双16位运算方式。7.复位电路有三种方式,分别是上电复位;手动复位;软件复位。8.立即数寻址指令中在数字或符号常数前面加一个#号,来表示立即数。9.位倒序寻址方式中,AR0中存放的是FFT点数的一半。10.一般,COFF目标文件中包含三个缺省的段:.text段;.data段和.bss段。11.汇编源程序中标号可选,若使用标号,则标号必须从第一列开始;程序中可以有注释,注释在第一列开始时前面需标上星号或分号,但在其它列开始的注释前面只能标分号。12.’C5402有23条外部程序地址线,其程序空间可扩展到1M,内程序区在第0页。13.指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。ADD*AR3+,14,AA0000001200数据存储器一、简答(共40分)1.TMS320C54x有多少条16位总线?这些总线各有什么作用?(6分)39~32保护位31~16高阶位15~0低阶位A0000002700C1C1AR30101AR301000100h15000100h1500答:’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=14000H~FFFFH片外MP/MC=04000H~EFFFH片外FF00H~FFFFH片内OVLY=10000H~007FH保留0080H~007FH片内OVLY=00000H~3FFFH片外数据空间:DROM=1F000H~FEFFH只读空间FF00H~FFFH保留DROM=0F000H~FEFFH片外3.当TMS320C54xCPU接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?(6分)答:(1)出现多个中断时,此中断的优先级最高(2)INTM=0允许全局中断(3)IMR中的响应相应位为1,开放此中断。4.TMS320C54x硬件复位地址为多少?如何确定中断向量地址?计算INT0(IPTR=001H)的中断向量地址。(6分)答:复位后,复位向量地址为:0080H确定地址方式:IPTR+左移2位后的中断向量序列号10H左移2位后成为40H,IPTR=001H,则中断向量地址为00C0H5.若辅助寄存器AR0的值为0x0005H,AR3的值为0x030FH,请分别给出下列寻址方式修改后的辅助寄存器的值。(6分)*AR3+;AR3=0310H*AR3+0;AR3=0314H*AR3(15);AR3=0324H6.分别解释以下指令的功能。(6分)LD#80h,A;把立即数80H装入累加器ALD80h,A;把80H为地址的数据装如累加器ALD#80h,16,A;把立即数80H左移16位后装如累加器A1.实现计算z=x+y-w的程序。.titleexample1.asm.mmregsSTACK.usectSTACK,10h.bssx,1.bssy,1.bssw,1.bssz,1.defstart.datatable:.word10,26,23.textstart:STM#0,SWWSRSTM#STACK+10h,SP;初始化堆栈指针SPSTM#x,AR1RPT#2MVPDtable,*AR1+;数据从程序存储器传送到数据存储器CALLSUMBend:BendSUMB:LD@x,AADD@y,ASUB@w,A;实现减法运算STLA,@zRET.end2.实现对数组X[5]={1,2,3,4,5}的初始化,然后将数据存储器中的数组X[5]复制到数组Y[5]。最后实现数组X和数组Y中对应元素相乘并累加,即z=1*1+2*2+3*3+4*4+5*5.mmregs.bssx,5.bssy,5.bssz,1.defstarttable:.word1,2,3,4,5.textstart:STM#x,AR1RPT4MVPDtable,*AR1+;从程序存储器传送到数据存储器数组X[5]STM#x,AR2STM#y,AR3RPT4MVDD*AR1,*AR3;从数据存储器数组X[5]传送到Y[5]SSBXFRCT;准备整数乘法STM#x,AR2STM#y,AR3STM#z,AR4RPTZ4MAC*AR2+,*AR3+,ASTLA,*AR4End:Bend.end四、分析程序回答问题(共8分).def_c_int00.mmregsstack:.usectstack,10h.bssa,4.bssx,4.bssy,1.datatable:.word1,2,4,3.word8,6,4,2.text_c_int00:STM#stack+10h,spSTM#a,AR1RPT#7MVPDtable,*AR1+CALLsumend:Bendsum:STM#a,AR3STM#x,AR4RPTZA,#3MAC*AR3+,*AR4+,ASTLA,@yret.end(1)说明该程序的功能:(4分)答:a1*x1=a2*x2+a3*x3+a4*x4(2)说明以下各量的理论值(4分)A:2Aa1的地址:81H内容:1AR1:88HAR3:84H1、对于TMS320C54x系列DSP芯片,下列说法正确的是(C)(A)专用型DSP(B)32位DSP(C)定点型DSP(D)浮点型DSP2、要使DSP能够响应某个可屏蔽中断,下面的说法正确的是(B)A.需要把状态寄存器ST1的INTM位置1,且中断屏蔽寄存器IMR相应位置0B.需要把状态寄存器ST1的INTM位置1,且中断屏蔽寄存器IMR相应位置1C.需要把状态寄存器ST1的INTM位置0,且中断屏蔽寄存器IMR相应位置0D.需要把状态寄存器ST1的INTM位置0,且中断屏蔽寄存器IMR相应位置13、若链接器命令文件的MEMORY部分如下所示:MEMORY{PAGE0:PROG:origin=C00h,length=1000hPAGE1:DATA:origin=80h,length=200h}则下面说法不正确的是(A)A、程序存储器配置为4K字大小B、程序存储器配置为8K字大小C、数据存储器配置为512字大小D、数据存储器取名为DATA5、C54XDSP的流水线是由(B)级(也即是由多少个操作阶段)组成。(A)4(B)6(C)8(D)106、假定AR3中当前值为200h,AR0中的值为20h,下面说法正确的是()A、在执行指令*AR3+0B后,AR3的值是200h;B、在执行指令*AR3-0B后,AR3的值为23Fh;C、在执行指令*AR3-0B后,AR3的值是180h;7、下面对一些常用的伪指令说法正确的是:(D)A、.def所定义的符号,是在当前模块中使用,而在别的模块中定义的符号;B、.ref所定义的符号,是当前模块中定义,并可在别的模块中使用的符号;C、.sect命令定义的段是未初始化的段;D、.usect命令定义的段是未初始化的段。8、在采用双操作数的间接寻址方式时,要使用到一些辅助寄存器,在此种寻址方式下,下面的那些辅助寄存器如果使用到了是非法的(D)A、AR2B、AR4C、AR5D、AR6二、填空题(每空2分,共20分)1、DSP芯片按照其用途分类,可以分为通用型和专用型两种。2、在堆栈操作中,PC当前地址为4020h,SP当前地址为0033h,运行PSHMAR2后,PC=4021h,SP=0032h。(PSHMAR2为单字指令)3、TMS320C54xDSP芯片四种串行口类型是指SP、BSP、McBSP和TDMcBSP。4、请简要说明TMS320C5402VCDSP以下引脚的功能:RS:复位引用脚,IOSTRB:I//O选通信号引脚。5、TMS320C54xDSP的内部总线主要包括程序总线、数据总线和地址总线。三、问答题与程序阅读题(共计24分)1、简述DSP程序的段.text,.data,.bss,各包含什么内容。(6分).答:.text代码段,该段包含程序代码.data数据段,该段包含已初始化的数据.bss变量段,该段为未初始化的变量保留空间2、比较伪指令.usect和.sect。(6分).答:.sect:定义初始化了的带名称的段Unsect:在一个未初始化的段中保留空间3、TMS320C54X芯片的流水线共有多少个操作阶段?每个阶段执行什么任务?(8分)答:共有6个操作阶段:1,预取址2,取址3,译码4,寻址5,读数6,执行4、假设AR3的当前值为200h,当使用以下TMS320C54XX寻址模式后其中的值为多少?假定AR0的值为20h。(4分)(1)*AR3+0(2)*AR3-0(3)*AR3+(4)*AR3四、程序设计题。(本大题2小题,共24分)1、在进行DSP的程序设计时,如果程序中要使用堆栈,则必须要先进行设置。下面程序段是对堆栈的设置,完成的功能是在RAM空间开辟了200个字的空间作为堆栈区,请完成程序段。(4分)size.set(1)stack.usect“STACK”,size;…STM#stack+(2),SP2、采用TMS320C54xDSP的定时器0产生方波,DSP主频为40MHz。要求:周期为20s的方波发生,从DSP的通用I/O引脚XF输出,定时中断周期为10ms,需要中断1000次,输出端XF引脚电平取一次反。请在空处填写正确指令完成下面程序段。(12分);初始化定时器0,定时为10ms,本设置中TDDR=9,PRD=39999,主频为40MHz;T=25ns;定时长度计算公式:T=CLKOUT*(TDDR+1)*(PRD+1)=10ms;定时器0寄存器地址TIM0.set0024HPRD0.set0025HTCR0.set0026H;K_TCR0:设置定时器控制寄存器的内容K_TCR0_SOFT.set0b11;Soft=0K_TCR0_FREE.set0b10;Free=0K_TCR0_PSC.set1001b6;PSC=9HK_TCR0_TRB.set1b5;TRB=1K_TCR0_TSS.set0b4;TSS=0K_TCR0_TDDR.set1001b0;TDDR=9K_TCR0.setK_TCR0_SOFT|K_TCR0_FREE|K_TCR0_PSC|K_TCR0_TRB|K_TCR0_TSS|K_TCR0_TDDR;初始化定时器0STM#039999,TIM0STM#039999,PRD0STM(1),TCR0;启动定时器0中断RET;定时器0的中断服务子程序t0_flag.usect“vars”,1;当前XF输出电平标志位,;若t0_flag=1,则XF=1;若t0_flag=0,则XF=0t0_counter.usect“vars”,1;计数长度变量time0_rev:PSHMTRNP