DSP原理及其应用复习题集.docx
《DSP原理及其应用复习题集.docx》由会员分享,可在线阅读,更多相关《DSP原理及其应用复习题集.docx(26页珍藏版)》请在冰豆网上搜索。
DSP原理及其应用复习题集
DSP原理及其应用(复习题集)
一、填空题
1、累加器A分为三个部分,分别为AG、AH、AL;
2、TMS320VC5402型DSP的内部采用8条16位的多总线结构;
3、TMS320VC5402型DSP采用哈佛总线结构对程序存储器和数据存储器进行控制;
4、TMS320VC5402型DSP有8个辅助工作寄存器;
5、DSP处理器TMS320VC5402中DARM的容量是16K字;
6、TI公司的DSP处理器TMS320VC5402PGE100有2个定时器;
7、在连接器命令文件中,PAGE1通常指数据存储空间;
8、C54x的中断系统的中断源分为硬件中断和软件中断;
9、TI公司DSP处理器的软件开发环境是CCS(CodeComposerStudio);
10、DSP处理器TMS320VC5402外部有20根地址线;
11、直接寻址中从页指针的位置可以偏移寻址128个单元;
12、在链接器命令文件中,PAGE0通常指程序存储空间;
13、C54x系列DSP处理器中,实现时钟频率倍频或分频的部件是锁相环PLL;
14、TMS320C54x系列DSP处理器上电复位后,程序从指定存储地址FF80H单元开始工作;
15、TMS320C54x系列DSP处理器有2个通用I/O引脚,分别是BIO和XF;
16、DSP处理器按数据格式分为两类,分别是定点DSP和浮点DSP;
17、TMS329VC5402型DSP的ST1寄存器中,INTM位的功能是开放/关闭所有可屏蔽中断;
18、MS320C54XDSP主机接口HPI是8位并行口;
19、在C54X系列中,按流水线工作方式,分支转移指令的分为哪两种类型:
无延迟分支转移、延迟分值转移;
20、C54x的程序中,“.bss”段主要用于为变量保留存储空间;
21、从数据总线的宽度来说,TMS320VC5402PGE100是16位的DSP存储器;
22、TMS320VC5402型DSP处理器的内核供电电压1.8V;
23、TMS320C5402系列DSP处理器最大的数据存储空间为64K字;
24、在链接器命令文件中,PAGE0通常指程序存储空间;
25、DSP技术是利用专用或通用数字信号处理芯片,通过数值运算的方法对信号进行处理;
26、C54x的程序中,“.text”段是文本段,主要包含可执行文本;
27、C54x系列DSP上电复位后的工作频率是由片外3个管脚CLKMD1、CLKMD2、CLKMD3来决定的;
28、DSP处理器TMS320C5402最大的程序存储空间为1M字;
29、从应用领域来说,MCU(单片机)主要用于控制领域;DSP处理器主要应用于信号处理;
30、TMS320C54XDSP提供一个用16位堆栈指针(SP)寻址的软件堆栈。
当向堆栈中压入数据时,堆栈是从高地址向低地址方向填入;
31、TMS320C54XDSP软硬件复位时,复位中断向量的地址为程序空间的FF08H;
32、TMS320C54X可编程定时器的定时周期=(时钟周期)*(分频系数TDDR+1)*(PRD+1);
33、DSP处理器的英文全称DigitalSignalProcessor;
34、DSP处理器TMS320VC5402的IO管脚供电电压为3,3V;
35、C54x的程序中,“.data”段是数据段,主要应用于通常包含初始化数据;
36、DSP处理器TMS320C5402的I/O空间为64K字;
37、TMS320VC5402型DSP的累加器是40位;
38、TMS329VC5402型DSP的MP/MC管脚的功能是微计算机或是微处理器工作模式;
39、TMS320VC5402型DSP的CPU采用桶形移位寄存器作为专用硬件实现移位功能;
40、汇编语句“STLA,@y”中“@y”表示直接寻址方式;
41、TMS320VC5402型DSP的ST1寄存器中,CPL位的功能是指示直接寻址采用何种指针;
42、解释汇编语句“READA*AR1”的功能:
以累加器A的内容作为地址读取程序存储单元,将读取的数据存入以AR1的内容作为地址的数据存储单元中;
43、TMS320C54X具有两个通用I/O口,BIO勇于输入外设的的状态;XF用于输出外设的控制信号;
二、判断题
1、DSP处理器TMS320VC5402的供电电压为5V。
(×)
2、DSP的工作频率只能是外部晶体振荡器的频率。
(×)
3、TMS320C54XDSP是浮点型处理器。
(×)
4、TMS320C54XDSP的汇编语言中有除法指令。
(×)
5、TMS320VC5402型DSP内部有8K字的ROM,用于存放自举引导程序、u律和A律扩展表、sin函数表以及中断向量表。
(×)
6、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。
(×)
7、TMS320C54X系列DSP外部程序存储器的分页扩展受DROM位控制。
(×)
8、TMS320C54XDSP是浮点型处理器。
(×)
9、DSP的工作频率只能是外部晶体振荡器的频率。
(×)
10、TMS320C54XDSP的汇编语言中有除法指令。
(×)
11、汇编伪指令可以用大写表示。
(×)
12、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。
(×)
13、TMS320VC5402型DSP汇编指令READA的寻址范围为64K字。
(×)
14、TMS320VC5402型DSP可以通过设置DROM位实现数据存储空间和程序存储空间共享片内DARAM。
(×)
15、TMS320C54X系列DSP可以通过设置OVLY位实现数据存储空间和程序存储空间共享片内ROM。
(×)
16、TMS320VC5402型DSP汇编语言的伪指令也是一种指令,同样占用存储空间。
(×)
17、TMS320VC5402型DSP的工作频率是由外部晶振唯一确定的。
(×)
18、DSP处理器TMS320VC5402的中断向量表位置是固定的。
(×)
19、TMS320VC5402型DSP可以通过设置DROM位实现数据存储空间和程序存储空间的共享片内DARAM。
(×)
20、TMS320C54X系列DSP可以通过设置OVLY位实现数据存储空间和程序存储空间的共享片内ROM。
(×)
21、TMS320VC5402型DSP汇编语言的伪指令也是一种指令,同样占用存储空间。
(×)
22、DSP处理器TMS320VC5402内部含有SARAM存储器。
(×)
23、3.3V的TTL电平器件可以直接驱动5V的CMOS器件。
(×)
24、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。
(×)
25、C54X系列DSP处理器的累加器A,B是32位的。
(×)
26、DSP处理器TMS320VC5402有不止一种串行口。
(×)
27、DSP处理器TMS320VC5402在微型计算机工作模式时,上电复位后程序从片外存储器的FF80h单元开始执行。
(×)
28、DSP处理器TMS320VC5402的中断向量表位置是固定的。
(×)
29、DSP处理器TMS320VC5402的程序存储空间只有64K字。
(×)
30、MEMORY伪指令用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置。
(√)
31、TMS320C54XDSP汇编语言源程序中,标号是可选项,若使用标号,则标号必须从第一列开始。
(√)
32、DSP处理器的中断请求可以由软件产生。
(√)
33、哈佛结构的特点是数据总线和程序总线分开。
(√)
34、DSP和MCU属于软件可编程微处理器,用软件实现数据处理;而不带CPU软核的FPGA属于硬件可编程器件,用硬件实现数据处理。
(√)
35、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。
(√)
36、在C54x系列DSP中断向量表的最大长度只能128字。
(√)
37、DSP对程序存储空间、数据存储空间和I/O空间的选择分别是由三根片选线PS、DS、IS独立选择的。
(√)
38、C54x系列DSP的CPU寄存器及片内外设寄存器映射在数据存储空间的0000h-0080h中。
(√)
39、单片机通过HPI接口可以访问TMS320VC5402的全部64K字数据存储空间。
(√)
40、在DSP处理器汇编程序中,标号区分大小写。
(√)
41、DSP处理器TMS320VC5402的堆栈是向低地址方向生长的。
(√)
42、DSP处理器TMS320VC5402的中断向量表位置是固定的。
(√)
43、当TMS320C54XDSP处于微处理器模式时,DSP上电复位之后从片外程序存储器的FF80H开始运行。
(√)
44、在TMS320VC5402型DSP所有中断向量中,只有硬件复位向量不能被重定位,即硬件复位向量总是指向程序空间的0FF80H位置。
(√)
45、DSP和MCU属于软件可编程微处理器,用软件实现数据处理;而不带CPU软核的FPGA属于硬件可编程器件,用硬件实现数据处理。
(√)
46、在DSP处理器汇编程序中,标号区分大小写。
(√)
47、DSP处理器TMS320VC5402的软件中断是不可屏蔽的中断。
(√)
48、链接器命令文件是用来规定程序段的存放位置的。
(√)
49、DSP处理器TMS320VC5402的堆栈是向低地址方向生长的。
(√)
50、C54x系列DSP只有两个通用的I/O引脚。
(√)
51、在C54x系列DSP的寻址方式中,使用DP作为直接寻址的偏移寻址范围只有128个字。
(√)
52、DSP的流水线冲突可以通过改变编程方法或者添加nop语句来消除。
(√)
53、TMS320VC5402型DSP汇编语言的寻址方式可以实现FFT算法中的位倒序寻址方式。
(√)
54、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。
(√)
55、如果OVLY=1,程序存储空间可以使用内部RAM,此时,不论XPC为何值,扩展程序存储空间的所有低32K字都被映像到内部RAM中。
(√)
56、在DSP的编程中可以将程序中不同的段放置在不同的存储器中。
(√)
57、C54x系列DSP的寻址方式中,用DP作为直接寻址的偏移寻址范围只有128个字。
(√)
58、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。
(√)
59、DSP对程序存储空间、数据存储空间和I/O空间的选择分别是由三根片选线PS、DS、IS独立选择的。
(√)
60、DSP的流水线冲突可以通过改变编程方法或者添加nop语句来消除。
(√)
61、TMS320C54X系列DSP的汇编语言中分支转移指令执行需要4个机器周期。
(√)
62、DSP处理器TMS320VC5402的定时器可以构成20位的定时器。
(√)
63、DSP处理器TMS320VC5402的软件中断是不可屏蔽的中断。
(√)
64、DSP处理器TMS320VC5402可以计算浮点小数运算。
(√)
65、TMS320VC5402型DSP汇编语言的寻址方式可以实现FFT算法中的位倒序寻址方式。
(√)
66、在DSP的编程中可以将程序中不同的段放置在不同的存储器中。
(√)
67、TMS320C54X系列DSP的汇编指令WRITA可以寻址1M字的程序空间。
(√)
68、DSP处理器TMS320VC5402内部没有专用的除法指令。
(√)
69、定点DSP处理器TMS320VC5402可以计算浮点小数运算。
(√)
70、DSP处理器TMS320VC5402的定时器可以构成20位的定时器(√)
71、DSP处理器TMS320VC5402的软件中断是不可屏蔽的中断。
(√)
72、DSP处理器TMS320VC5402支持流水线的指令运行方式。
(√)
73、DSP处理器TMS320VC5402内部没有专用的除法指令。
(√)
74、定点DSP处理器TMS320VC5402可以计算浮点小数运算。
(√)
75、CCS软件开发系统支持C语言程序编程。
(√)
76、DSP处理器C54x的软件中断是不可屏蔽的中断。
(√)
77、DSP处理器C54x支持流水线的指令运行方式。
(√)
78、DSP处理器C54x的堆栈是向低地址方向生长的。
(√)
79、DSP处理器C54x的汇编程序是由许多“段”组成的。
(√)
三、程序阅读题
1、阅读下面的程序片断,写出运行结果
.mmregs
bei_hua.set18
LD#bei_hua,A
问题:
(1)“.mmregs”的作用是什么?
(2)运行此段程序后,累加器A的结果是多少?
答:
(1)定义存储器映像寄存器的符号名称
(2)A的结果是18
2、阅读下面的程序,回答问题。
.bssx,8
LD#0001H,16,B
STM#7,BRC
STM#x,AR4
RPTBnext-1
ADD*AR4,16,B,A
STHA,*AR4+
next:
LD#0,B
问题:
(1)、寄存器“BRC”的功能是什么?
(2)汇编语句“ADD*AR4,16,B,A”执行了多少次?
(3)执行语句“LD#0001H,16,B”后,累加器B的内容是多少?
答:
(1)寄存器“BRC”的功能是暂存块循环的次数
(2)8次
(3)B=0x0100H;
3、阅读程序,回答后面的问题
STM#6,AR4
begin:
STM#9,BRC
RPTBnext-1
nop
next:
LD#0,B
banzbegin,*AR4-
问题:
(1)BRC寄存器是做什么用途?
(2)语句“banzbegin,*AR4-”的作用是什么?
(3)其中的“nop”语句被执行了多少次?
答:
(1)BRC保存着RPTB指令的循环次数
(2)判断AR4的内容是否为零,若不为零,跳转到标号begin。
(3)70次
4、阅读下面的程序,回答问题。
MEMORY
{PAGE0:
PROG:
origin=0x2000,length=0x1000
PAGE1:
DATA:
origin=0x4000,length=0x1000
}
SECTIONS
{.text:
{}>PROGPAGE0
STACK:
{}>DATAPAGE1
}
汇编程序
size.set0x0120
stack.usect“STACK”,size
.text
STM#stack+size,SP
问题:
(1)指令“stack.usect“STACK”,size”的作用是什么?
(2)标号“stack”的存储器地址是多少?
(3)执行这段代码之后,SP寄存器的内容是多少?
答:
(1)定义一个未初始化段,段名为”STACK”,目的是为变量stack保留size个单元的存储空间。
(2)stack的存储空间为0x4000;
(3)SP=0x4120;
5、阅读下面的命令连接文件(简称CMD文件)和程序文件:
CMD文件:
MEMORY
{PAGE0:
PROG:
origin=0x1000,length=0x1000
PAGE1:
DATA:
origin=0x2000,length=0x1000
}
SECTIONS
{.text:
{}>PROGPAGE0
.data:
{}>DATAPAGE1
}
.data
table:
.word1,2,3,4 ;变量初始化
.text
start:
STM#0,SWWSR;插入0个等待状态
问:
(1)MEMORY和SECTIONS的作用各是什么?
(2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间?
答:
(1)MEMORY和SECTIONS链接伪指令,用来指定目标存储器结构和地址分配。
(2)标号table:
1000h(程序空间)、标号start:
2000h(数据空间)
6、已知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:
LDMCLKMD,A
AND#01H,A
BCStatus,ANEQ
STM#9007H,CLKMD
问题:
(1)DSP复位后,DSP的工作时钟是多少?
(2)执行上面的程序片段后,DSP的工作时钟是多少?
答:
(1)5MHz
(2)100MHz
7、阅读下面的程序片断,写出运行结果
.mmregs
DAT0.SET60H
LD#004h,DP
ST#0345h,DAT0
STM#0002h,T
MPYDAT0,A
NOP
问题:
(1)寄存器T的作用是什么?
(2)执行“MPYDAT0,A”后,累加器A的内容是什么?
答:
(1)寄存器T的作用是暂存被乘数。
(2)累加器A的内容为0x68A或68Ah
8、阅读下面的程序:
.mmregs
DAT0.SET60H
DAT1.SET61H
DAT2.SET62H
DAT3.SET63H
add3.macroP1,P2,P3,ADDRP
LDP1,A
ADDP2,A
ADDP3,A
STLA,ADDRP
.endm
ST#0034h,DAT0
ST#0243h,DAT1
ST#1230h,DAT2
ADD3DAT0,DAT1,DAT2,DAT3
问题:
(1)语句“.mmregs”的含义。
(2)语句“ADD3DAT0,DAT1,DAT2,DAT3”是一条什么类型的语句?
作用是什么?
(3)执行此段程序后,存储单元(DAT3)的运行结果多少?
答:
(1)定义存储器映像寄存器的符号名称。
(2)宏调用。
执行三个数相加。
(3)14A7H
9、阅读下面的程序,回答问题。
.sect".vectors"
rst:
B_c_int00;复位中断向量的入口
NOP
NOP
.space18*4*16
tint:
Btimeout;定时器0的中断向量的入口
NOP
NOP
问:
(1)“.sect”伪指令的作用是什么?
(2)标号“rst”的地址为6000H,请问标号“tint”的地址是多少?
答:
(1)定义一个自定义段名的程序段
(2)604Ch
10、阅读下面的程序片段,写出运行结果
.mmregs
DAT0.SET60H
LD#004h,DP
ST#0345h,DAT0
STM#0002h,T
MPYDAT0,A
NOP
NOP
问题:
(1)寄存器T的作用是什么?
(2)执行“MPYDAT0,A”后,累加器A的内容是什么?
答:
(1)寄存器T的作用是暂存被乘数,
(2)累加器A的内容为0x68A或68Ah
11、阅读下面的程序,回答问题。
MEMORY
{PAGE0:
PROM:
org=0E000h,len=100h
VECS:
org=0FF80h,len=04h
PAGE1:
SPRAM:
org=0060h,len=20h
DARAM:
org=0080h,len=100h
}
SECTIONS
{.text :
>EPROMPAGE0
.data :
>EPROMPAGE0
.bss :
>SPRAMPAGE1
STACK :
>DARAMPAGE1
vectors :
>VECS PAGE0
}
问题:
(1)该文件是如何配置程序空间和数据空间的?
(2)该文件中出现了几个段?
哪些是初始化段?
哪些是未初始化段?
各段是如何分配的?
答:
(1)该文件使用MEMORY伪指令将程序空间划分为两个小区间:
名为PROM的区间其起始地址为0E000h,长度为100h字;名为VECS的区间其起始地址为0FF80h,长度为4字。
将数据空间也分为了两个小区间:
名为SPRAM的区间其起始地址为0060h,长度为20h字;名为DARAM的区间其起始地址为0080h,长度为100h字。
(2)出现了5个段,.text,.data和vectors是初始化段,.bss和STACK段是未初始化段。
.text和.data分配到程序空间的EPROM区间;.bss分配到数据空间SPRAM区间;STACK段分配到数据空间的DARAM区间;vectors段分配到程序空间的VECS区间。
12、阅读下面的程序,回答问题。
MEMORY
{PAGE0:
PROG:
origin=0x2000,length=0x1000
PAGE1:
DATA:
origin=0x3000,length=0x1000
}
SECTIONS
{.text:
{}>PROGPAGE0
.bss:
{}>DATAPAGE1
}
汇编程序:
.bssa,4
.bssx,4
.bssy,1
STM#a,AR3
STM#x,AR4
RPTZA,#3
MAC*AR3+,*AR4+,A
STLA,*(y)
问题:
(1)指令“STM#a,AR3”的作用是什么?
执行此句指令后,寄存器AR3的内容是多少?
(2)指令“MAC*AR3+,*AR4+,A”执行了几次?
每执行一次寄存器AR3和AR4的内容如何变化?
(3)这段代码的功能是什么?
答:
(1)将标号a的地址赋给辅助工作寄存器AR3,AR3=3000h。
(2)执行了4次,每执行一次辅助工作寄存器AR3和AR4的内容增一。
(3)
13、已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=101,外部晶振=10MHz,参数设置表:
CLKMD1
CLKMD2
CLKMD3
CLKMD复位值
时钟方式
0
0
0
E007H
PLL×15
0
0
1
9007