第一章1、什么是定点DSP 芯片和浮点DSP 芯片?各有什么优缺点?2、数据的定标方法,(16位数的Q 表示法或Qm.n 表示法)。
3、定点数的加/减法、乘法的运算。
第二章1、C54x DSP 的CPU 包括哪些内容?2、TMS320C5402 DSP 芯片的片内外围有哪些?3、TMS320C54x 的总线有何特点,主要包括哪些总线,它们的功能是什么?4、熟练掌握TMS320C5402存储器的配置。
第三章1、以下指令各采用什么寻址方式,以及指令执行的功能是什么:(1)LD #10H ,4,A(2)stl A ,*(1000h )(3) ;CPL=0,DP=20h ,sp=10hAdd @5,a(4) MAC *AR2+,*AR3+,A(5) MVMM AR2,AR72、掌握循环寻址和位码倒序寻址的功能3、’C54x DSP 有哪些重复操作?各有什么优点?4、写出计算201i i y x ==∑的主要汇编程序,并给程序添加注释,画出程序的流程图。
5、编写计算)9.0(*)3.0(6.0*)2.0(8.0*1.0--+-+=y 程序段。
5、本章所有的例题要掌握。
第四章1、简述DSP 汇编程序(汇编器、C 语言编译器)的段 .bss 、data 、sect 、text 、usect 各包含什么内容?2、说明以下C54x 伪指令的作用.end, .word, .ref, .global, .mmregs, .bss, .sect, .def, .usect, .copy, .include, .asg .set3、写出计算∑==71i i i x a y 的主要汇编程序,并给程序添加注释。
4、编写程序,用公式))))981(761(541(321(sin 2222⨯-⨯-⨯-⨯-=x x x x x θ计算45度角的正弦值。
5、FIR滤波器的实现程序:存储器分配如下在程序存储器中设置系数表。
数据存储器程序存储器O1d循环缓冲区系数表80h 88h x(n-4)COFF a0 低地址81h 89h x(n-5)a182h 8Ah x(n-6)a283h 8Bh x(n-7)←AR3 a3 高地址.mmregs.def start.bss y,1x_new .usect "DATA1",8x_o1d .usect "DATA1",8size .set 4PA0 .set 0PAl .set 1.dataCOEF .word 1*32768/10,2*32768/10.word 3*32768/10,4*32768/10.textstart: LD #y,DPSSBX FRCTstm #200,ar6stm #0a0h,ar5stm #200h,ar7STM #x_new,AR2 ;AR2指向新缓冲区第1个单元STM #x_o1d+(size-1),AR3 ;AR3指向老缓冲区最后1个单元STM # size,BK ;循环缓冲区长度=SizeSTM #-1,AR0 ;仿效*ARn-%LD #x_new,DPld *ar5+,astl a,@x_new ;输入X(n)FIR: ADD *AR2+0%,*AR3+0%,A ;AH=x(n)+x(n-7)(第一次) RPTZ B,#(size-1) ;B=0,下条指令执行size次FIRS *AR2+0%,*AR3+0%,COEF;B+=AH*a0,AH=X(n-1)+x(n-6),…STH B,@y ;保存结果sth b,*ar7+MAR *+AR2(2)% ;修正AR2,指向NEW缓冲区最老的数据MAR *AR3+% ;修正AR3,指向OLD缓冲区最老的数据MVDD *AR2,*AR3+0% ;新缓冲区向老缓冲区传送一个数banzd FIR,*ar6-mvdd *ar5+,*ar2nopnopret; PORTR PAl,*AR2 ;输入新数据至新缓冲区.END第五章1、简述流水线操作的基本原理。
2、TMS320C5402芯片的引脚功能3、掌握软件可编程等待状态发生器第六章1、以INT3中断为例,简要阐述TMS320C54x的中断流程。
2、定时器中断实验中的c程序如下,对程序中“//”处的语句进行注释#include "cpu_reg.h"int msvoid main(){asm(" STM #0000h,CLKMD ");while(*CLKMD & 0x01 );asm(" STM #40C7h,CLKMD "); //asm(" stm #4240h, SWWSR "); //asm(" stm #00a0h, PMST "); //asm(" stm #0802h, BSCR ");asm(" STM #0h,IMR "); //asm(" STM #0010h,TCR "); //asm(" STM #0186ah,PRD "); //asm(" STM #0C2fh,TCR "); //asm(" STM #0008h,IFR "); //asm(" ORM #0008h,*(IMR) "); //asm(" RSBX INTM "); //ms=0;while(1){while(ms<5000);ms=0;asm(" RSBX XF ");while(ms<500);ms=0;asm(" SSBX XF ");}}interrupt void timer0(){ Array ms++;}如果要求XF引脚的输出为一周期为20s的方波,定时中断周期为10ms,则程序该如何修改。
第八章1、举例说明C54x C语言编程中是如何访问片内寄存器、存储器以及I/O端口的?2、简述DSP程序中采用C语言和汇编语言编程的优点和缺点?3、DSP的C语言编程中,中断函数是如何定义的,举例说明?练习题一、填空1.TI公司的定点DSP产品主要有TMS320C2000 系列、TMS320C5000系列和TMS320C6000 系列。
2.’C54x DSP中传送执行指令所需的地址需要用到PAB 、CAB、DAB和EAB 4条地址总线。
3.DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。
其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM (DARAM)。
4.’C54x DSP的内部总存储空间为192K字,分成3个可选择的存储空间:64K字的程序存储空间、64K字的数据存储空间和64K字的I/O空间。
5.从功能结构上,’C54X DSP的CPU可以划分成运算部件和控制部件两大部分。
6.’C54x DSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映象寄存器寻址、堆栈寻址。
7.在’C54x DSP寻址和指令系统中,Xmem和Ymem表示16位双寻址操作数,Dmad为16位立即数,表示数据存储器地址,Pmad为16位立即数,表示程序存储器地址。
8.程序计数器的值可以通过复位操作、顺序执行指令、分支转移,累加器转移,块重复,子程序调用,从累加器调用子程序,中断等操作改变。
9.’C54x DSP芯片采用了6级流水线的工作方式,即一条指令分为预取指、取指、译码、寻址、读数和执行6个阶段。
10.解决MMR写操作的流水线冲突时,一般可用采用推荐指令和插入空操作指令的方法。
11.’C54x DSP定时器由3个16位存储器映射寄存器组成:定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。
12.主机接口(HPI,Host Port Interface)是TMS320C54x 系列定点芯片内部具有的一种接口部件,主要用于DSP与其他总线或CPU进行通信。
13.’C54x DSP的指令系统有助记符指令和代数指令两种形式。
14.COFF目标文件中.text段通常包含可执行代码,.data段通常包含己初始化的数据,.bss段中通常为未初始化的数据保留空间。
15.DSP芯片的开发工具可以分为代码生成工具和代码调试工具两类。
16. C54x的链接器命令文件.cmd中,SECTIONS命令的主要作用是告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出。
MEMORY命令的主要作用是定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定他们的起始地址和长度。
17. 将125x表示成Q15为F000H ,表示成Q12为FE00H 。
=-.0二、读程序题1.分析以下指令的执行结果:ADD *AR1+, 2, A已知指令执行前: A=0,C=1 ,SXM=0,AR1=0300h,(0300h) = 0100h指令执行后:A= 400H ,C= 0 ,SXM= 0 ,AR1= 301H ,(0300h) = 100H 。
SFTA A, -3,B已知指令执行前: A=FF88888888H,B=123456H, C=1, SXM=1,指令执行后:A= FF88888888H ,C= 0 ,SXM=1 ,B = FFF1111111H 。
LD #1H,BSTM #100H, AR1STM #200H,AR2LD *AR1+, ASTL A, ASM, *AR2-已知该段指令执行前: A=FF88888888H,B=123456H, C=0, SXM=0,ASM=3H,(100H)=200H,(101H)=1H, (102H)=2H, (200H)=100H,(201H)=101H指令执行后:A= 200H ,C= 0 ,(200H)= 1000H ,B = 1H , AR1= 101H ,AR2= 1FFH .2. 分析下列程序段,回答题目中给出的问题:.title "test1.asm".mmregsSTACK .usect "STACK",20H.bss x,4 指令的功能(目的):为变量分配4个字的存储空间.def start.datatable: .word 5,6,7,8.textstart: STM #02H,SWWSR 指令的功能(目的):设置程序存储空间2个等待状态STM #STACK+20H,SP 指令的功能(目的):设置堆栈指针STM #x,AR1RPT #3 指令的功能(目的):下一条指令执行4次MVPD table,*AR1+STM #x,AR1STM #x+2,AR2 指令的功能(目的):AR2 指向x+2STM #2,AR3LD *AR1+,T 指令的功能(目的):T=(AR1); AR1=AR1+1MPY *AR2+,A 指令的功能(目的):A=T*(AR2); AR2=AR2+1loop1: LD *AR1+,TMPY *AR2+,BMAX A 指令的功能(目的):A=max(A,B)BANZ loop1,*AR3- 指令的功能(目的):AR3不为0时进行程序跳转end: IDLE 2 指令的功能(目的):进入IDLE状态B end.end3.分析下列程序段,回答题目中给出的问题:.title “fir_p.ams”.mmregs.def start.bss y,1x_new .usect “DATAl”,8x_o1d .usect “DATA2”,8size .set 8PA0 .set 0PAl .set 1.dataCOEF .word 6FH,0F3H, 269H,50DH.word 8A9H,0C99H,0FF8H,11EBH.textStart:LD #y,DP ;指令的功能(目的)SSBX FRCTSTM # x _new,AR2 ;STM #x_o1d+(size-1),AR3 ;STM # size,BK ;STM # -1,AR0 ;LD #x_new,DPPORTR PAl,#x_ new ;FIR:ADD *AR2+0%,*AR3+0%,A ;RPTZ B,#(size-1) ;FIRS *AR2+0%,*AR3+0%,COEF;STH B,@y ;PORTW @y,PA0 ;MAR *+AR2(2)% ;MAR *AR3+%;MVDD *AR2,*AR3+0%;BD FIRPORTR PAl,*AR2 ;.END(1)、该FIR滤波器处理来自I/0 空间1H 地址的数据,经FIR滤波处理后输出到I/0空间0H 地址外设。