53、TMS320C54X DSP片内可编程定时器有哪些主要特征?
54、请简述一下TMS320C54X DSP如何将三个独立的可寻址存储空间分开,又是通过哪些信号完成对外部程序或数据存储器的访问、I/O设备的访问和控制数据传送方向?
55、链接命令文件CMD的作用是什么?该文件由哪些部分组成?
56、TMS320C54X DSP的串行接口有哪几种类型?它们之间有什么区别?
57、请用方框图描述一个你熟悉的实用数字信号处理器系统,并做简要的分析;如果没有,也可以自己设计一个简单的数字信号处理器系统,并描述其功能及用途。
58、数字滤波器的分类和结构特点。 59、IIR、FIR滤波器的异同。
60、DSP和通用处理器在结构上有什么不同?请简要画出你熟悉的一种DSP结构图。说说定点DSP和浮点DSP的定义 四、阅读程序填空 1.BANZ 2000h, *AR3-
指令执行前指令执行后PCAR31000005PCAR32000004 2.CMPR GT, AR3
指令执行前指令执行后TCAR0AR31FFFF7FFFTCAR0AR30FFFF7FFF 3.ADD *AR3+, 14, A
指令执行前指令执行后ACAR3SXM00 0000 1200101001ACAR3SXM00 0540 1200001011Data Memory0100h15000100h1500 4.SUB A, -8, B
第页(共 2 页) 21
指令执行前指令执行后ABCSXM00 0000 120000 0000 1800x1ABCSXM00 0000 120000 0000 17EE11 5.MPY *AR3+, A
指令执行前指令执行后ATAR300 0000 120000040100ATAR300 0000 004000040101Data Memory0100h00100100h0010 6.
.def _c_int00
.mmregs
stack: .usect \ .bss a,4 .bss x,4 .bss y,1 .data
table: .word 1,2,4,3 .word 8,6,4,2 .text
_c_int00:STM#stack+10h,sp STM #a,AR1 RPT #7
MVPD table,*AR1+ CALL sum end: B end
sum: STM #a,AR3 STM #x,AR4 RPTZ A,#3
MAC *AR3+,*AR4+,A STL A,@y ret .end
(1) 说明该程序的功能:(4分)
第页(共 2 页) 22
答:a1*x1=a2*x2+a3*x3+a4*x4 (2) 说明以下各量的理论值(4分)
A: 2A a1的地址:81H 内容:1 AR1: 88H AR3: 84H 7. 阅读下面的程序,回答问题。 .bss x, 8
LD #0001H,16,B STM #7,BRC STM #x,AR4 RPTB next-1
ADD *AR4,16,B,A STH A,*AR4+ next: LD #0,B 问题:
(1)寄存器“BRC”的功能是什么?
寄存器“BRC”的功能是暂存块循环的次数
(2)汇编语句“ADD *AR4,16,B,A”执行了多少次? 8次
(3)执行语句“LD #0001H,16,B”后,累加器B的内容是多少? B=0x0100H;
8.阅读下面的程序:
.mmregs DAT0 .SET 60H DAT1 .SET 61H DAT2 .SET 62H DAT3 .SET 63H
add3 .macro P1,P2,P3,ADDRP LD P1,A ADD P2,A ADD P3,A STL A,ADDRP .endm
ST #0034h,DAT0
ST #0243h,DAT1 ST #1230h,DAT2 ADD3 DAT0,DAT1,DAT2,DAT3 问题:
(1) 语句“.mmregs”的含义。
定义存储器映像寄存器的符号名称。
(2) 语句“ADD3 DAT0,DAT1,DAT2,DAT3”是一条什么类型的语句?作用是什么?
宏调用。执行三个数相加。
(3)执行此段程序后,存储单元(DAT3)的运行结果多少? 14a7H
第页(共 2 页) 23
9.阅读下面的程序片段,写出运行结果 .mmregs DAT0 .SET 60H LD #004h,DP
ST #0345h,DAT0
STM #0002h,T MPY DAT0,A NOP NOP
问题:(1)寄存器T的作用是什么? 寄存器T的作用是暂存被乘数,
(2)执行“MPY DAT0,A”后,累加器A的内容是什么?: 累加器A的内容为0x68A或68Ah 10.阅读程序,回答后面的问题 STM #6,AR4
begin: STM #9,BRC RPTB next-1 nop
next: LD #0,B
banz begin,*AR4-
问题:(1) BRC寄存器是做什么用途? BRC保存着RPTB指令的循环次数
(2)语句“banz begin,*AR4-”的作用是什么?
判断AR4的内容是否为零,若不为零,跳转到标号begin。 (3) 其中的“nop”语句被执行了多少次? 70次
11.已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=111,外部晶振=10MHz,参数设置表: CLKMD1 CLKMD2 CLKMD3 CLKMD复位时钟方式 值 0 0 0 E007H PLL×15 0 0 1 9007H PLL×10 0 1 0 4007H PLL×5 1 0 0 1007H PLL×2 1 1 0 F007H PLL×1 1 1 1 0000H 2分频 1 0 1 F000H 4分频 STM #00H,CLKMD Status:LDM CLKMD,A AND #01H,A BC Status,ANEQ
STM #9007H,CLKMD
问题(1)DSP复位后,DSP的工作时钟是多少? 5MHz
第页(共 2 页) 24
(2)执行上面的程序片段后,DSP的工作时钟是多少?
100MHz
12.阅读下面的程序片断,写出运行结果 .mmregs bei_hua .set 18
LD # bei_hua,A
问题:(1)“.mmregs”的作用是什么? 定义存储器映像寄存器的符号名称
(2) 运行此段程序后,累加器A的结果是多少? A的结果是18
13.阅读下面的程序,回答问题。
.sect \
rst: B _c_int00 ;复位中断向量的入口 NOP NOP .space 18*4*16
tint: B timeout ;定时器0的中断向量的入口 NOP NOP
问: (1) “.sect”伪指令的作用是什么? 定义一个自定义段名的程序段
(2) 标号“rst”的地址为6000H,请问标号“tint”的地址是多少? 604Ch
14. 阅读下面的命令连接文件(简称CMD文件)和程序文件: CMD文件: MEMORY {PAGE 0: PROG: origin = 0x1000, length = 0x1000 PAGE 1: DATA: origin = 0x2000, length = 0x1000 }
SECTIONS { .text: {} > PROG PAGE 0 .data: {} > DATA PAGE 1 }
.data
table: .word 1,2,3,4 ; 变量初始化
.text
start:STM # 0,SWWSR ; 插入0个等待状态 问:(1)MEMORY和SECTIONS的作用各是什么?
MEMORY和SECTIONS链接伪指令,用来指定目标存储器结构和地址分配。
(2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间?
标号table:1000h(程序空间) 标号start:2000h(数据空间)
第页(共 2 页) 25