第一章
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=10h
Add @5,a
(4) MAC *AR2+,*AR3+,A (5) MVMM AR2,AR7
2、掌握循环寻址和位码倒序寻址的功能
3、’C54x DSP有哪些重复操作?各有什么优点?
4、写出计算y??xi的主要汇编程序,并给程序添加注释,画出程序的流程图。
i?1205、编写计算y?0.1*0.8?(?0.2)*0.6?(?0.3)*(?0.9)程序段。
5、本章所有的例题要掌握。 第四章
1、简述DSP汇编程序的段 .bss、.data、.sect、.text、.usect各包含什么内容? 2、说明以下C54x伪指令的作用
.end, .word, .ref, .global, .mmregs, .bss, .sect, .def, .usect, .copy, .include, .asg .set
3、写出计算y??aixi的主要汇编程序,并给程序添加注释。
i?17x2x2x2x2(1?(1?(1?))))计算45度角4、编写程序,用公式sin??x(1?2?34?56?78?9的正弦值。
5、FIR滤波器的实现程序:
存储器分配如下
在程序存储器中设置系数表。
数据存储器 程序存储器
New循环缓冲区 O1d循环缓冲区 系数表
80h x(n) ← AR2 88h x(n-4) COFF a0 低地址 81h x(n-3) 89h x(n-5) a1 82h x(n-2) 8Ah x(n-6) a2
83h x(n-1) 8Bh x(n-7) ←AR3 a3 高地址 弄清楚实现的程序代码: .mmregs
.def start .bss y,1
x_new .usect \x_o1d .usect \size .set 4 PA0 .set 0 PAl .set 1 .data
COEF .word 1*32768/10,2*32768/10 .word 3*32768/10,4*32768/10 .text
start: LD #y,DP SSBX FRCT stm #200,ar6 stm #0a0h,ar5 stm #200h,ar7
STM #x_new,AR2 ;AR2指向新缓冲区第1个单元
STM #x_o1d+(size-1),AR3 ;AR3指向老缓冲区最后1个单元 STM # size,BK ;循环缓冲区长度=Size STM #-1,AR0 ;仿效*ARn-% LD #x_new,DP ld *ar5+,a
stl 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+,*ar2 nop
nop ret
; PORTR PAl,*AR2 ;输入新数据至新缓冲区 .END
6、以8点的FFT为例,用C54x汇编语言实现FFT的算法,重点掌握
(1)对输入数据系列按位码倒序方式混序排列复制到FFT结果数据系列的实现 (2)第一级蝶形运算计算2点的FFT
第五章
1、简述流水线操作的基本原理。 2、TMS320C5402芯片的引脚功能 3、掌握软件可编程等待状态发生器
第六章
1、以INT3中断为例,简要阐述TMS320C54x的中断流程。
2、定时器中断实验中的c程序如下,对程序中 “//”处的语句进行注释 #include \int ms
void 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() {
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. 将x??0.125表示成Q15为 F000H ,表示成Q12为 FE00H 。