DSP期末复习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP期末复习题及答案
⼀、填空题(每空2分,共20分)
1、在C语⾔和C55x汇编语⾔的混合程序设计中,C函数的参数和返回值传递到
C55x的寄存器中。
在函数“long func(int *p1, int i2, int i3, int i4)”
中,*p1传递到AR0寄存器,i2传递到T0寄存器,i4传递到AR1寄存器,返回值由AC0寄存器传递。
2、汇编语⾔“mov *AR0,AC0”使⽤的寻址⽅式是间接寻址模式,“mov #0x3,
DPH”使⽤的寻址⽅式是直接寻址模式,“mov *(#0x011234),T2”使⽤的寻址⽅式是绝对寻址模式。
3、指令执⾏前AC0的值是0012345678,那么汇编语句“AND #0x7f, AC0”,
执⾏之后,AC0的值是0000000078。
4、C55x 的链接器命令⽂件中,SECTIONS命令的主要作⽤是告诉链接器如何将输
⼊段组合成输出段,以及在存储器何处存放输出。
MEMORY命令的主要作⽤是定义⽬标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度。
⼆、简述题(共40分)
1、根据你的理解,试列举 DSP 芯⽚的特点?(5分)
答:哈佛结构;多总线结构;指令系统的流⽔线操作;专⽤的硬件乘法器;特殊的DSP 指令;快速的指令周期;丰富的外设
2、TMS320C55x 芯⽚的总线结构有何特点,主要包括哪些总线?它们的功
能是什么?(6分)
答:TMS320C55x DSP采⽤先进的哈佛结构并具有⼗⼆组总线,其独⽴的程序总线和数据总线允许同时读取指令和操作数,实现⾼度的并⾏操作。
采⽤各⾃分开的数据总线分别⽤于读数据和写数据,允许CPU在同⼀个机器周期内
进⾏两次读操作数和⼀次写操作数。
独⽴的程序总线和数据总线允许CPU同时访问
程序指令和数据。
包括12条总线,分别是:PAB和PB、BAB和BB、CAB和CB、DAB和DB、EAB和EB、FAB和FB。
3、DSP 为了降低功耗采取了哪些措施?(6分)
答:双电压供电;多种⼯作模式
4、TMS320C55x 的总存储空间为多少?可分为哪 3 类,它们的⼤⼩是多
少?存储器空间的各⾃作⽤是什么?(6分)
答:程序空间16M Byte;I/O空间64K Words;数据空间8M Words
5、TMS320C55x有哪些寻址⽅式,它们是如何寻址的?试为每种寻址⽅式列
举⼀条指令(6分)
答:直接寻址模式,mov #K16,DP;
间接寻址模式,mov *AR0,AC0;
绝对寻址模式,mov *(#0x011234),T2;
MMR寻址模式,mov *abs16(#AR2), T2;
寄存器位寻址模式,btstp @30, AC1;
圆形寻址模式。
6、将C源程序转换成可执⾏⽂件需要经过哪些步骤?(6分)
答:创建C源⽂件;创建⼯程⽂件;创建连接器命令⽂件;编译整个⼯程⽂件;链接;
⽣成可执⾏⽂件
7、常⽤的TMS320C55x 汇编命令有哪些,它们的作⽤是什么?(5分)
三、程序设计题(共40分)
1、⽤C55x 汇编语⾔实现计算 ∑==4
1i i i x a y 的程序。
(10分)
答:mpym *AR0+, *AR1+, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
或者:
mpym *AR0+, *AR1+, AC0
||rpt #2
macm *AR0+, *AR1+, AC0
2、⽤C55x 汇编语⾔实现计算 22111**a x a x y -=的程序。
(10分)
答:mpym *AR0+, *AR1+, AC3
masm *AR0+, *AR1+, AC3
1、对于TMS320C54x 系列DSP 芯⽚,下列说法正确的是 ( c )
(A) 专⽤型DSP (B )32位定点DSP (C) 16位定点型DSP (D) 浮点型DSP
2、TMS320C54x 系列DSP 的CPU 具有三个16位寄存器来作为CPU 状态和控制寄存器,下⾯有⼀项不是的是:(d )
(A) ST0 (B) ST1 (C) PMST (D) TDDR
3、要使DSP 能够响应某个可屏蔽中断,下⾯的说法正确的是 ( c )
(A) 需要把状态寄存器ST1的INTM 位置1,且中断屏蔽寄存器IMR 相应位置0
(B) 需要把状态寄存器ST1的INTM 位置0,且中断屏蔽寄存器IMR 相应位置1
(C) 需要把状态寄存器ST1的INTM 位置1,且中断屏蔽寄存器IMR 相应位置1
(D) 需要把状态寄存器ST1的INTM 位置0,且中断屏蔽寄存器IMR 相应位置0
4、下⾯对TMS320C54xDSP 的中断系统叙述错误的是( d )
(A)TMS320C54xDSP 的中断系统具有硬件中断和软件中断。
(B)TMS320C54xDSP 的硬件中断指由⽚外扩展的外设引起的中断。
(C)TMS320C54xDSP 的中断可以根据是否能被屏蔽分为可屏蔽中断和⾮屏蔽中断。
(D)TMS320C54xDSP 的⾮屏蔽中断指软件中断、RS 中断和NMI 中断。
5、下⾯对TMS320C54xDSP 在进⾏读写操作时占⽤总线情况,说法正确的是()
(A) 在进⾏程序读时,需要占⽤的总线是PAB 和DB 总线。
(B) 在进⾏程序写时,需要占⽤的总线是PAB 和PB 总线。
(C) 在进⾏单数据读时,需要占⽤的总线是DAB 和CB 总线。
(D) 在进⾏双数据读时,需要占⽤的总线为CAB、DAB、CB和DB总线。
6、下图对于IFR操作,说法错误的是:( c )
(A) 当⼀个可屏蔽中断出现时,IFR相应位的中断标志位置1;
(B) 通过复位可以清除中断标志;
(C) 对IFR的相应位写1,可以清除相应中断标志位;
(D) 对IFR的相应位写0,可以清除相应中断标志位。
7、下⾯对TMS320C54xDSP的堆栈操作说法,正确的是()
(A) 出栈操作时,数据先出栈,然后SP增加
(B) 出栈操作时,SP先增加,然后数据出栈
(C) 当进栈操作时,SP先增加,然后数据进⼊堆栈
(D) 当进栈操作时,数据先进⼊堆栈,然后SP减⼩。
8、在指令执⾏前寄存器和数据存储器相应的初始状态为(AR3)=0100h,(0100h)=0444h,则指令:ANDM #00FFh, *AR3+执⾏后,以下结果正确的是:()
(A) (AR3)=0101h (B) (0100h)=04F4h (C) (AR3)=044Fh (D) (0100h)=0F44h
⼆、填空题(本⼤题共5⼩题,每空2分,共20分)
1、DSP芯⽚按照其⼯作的数据格式分类,可以分为定点DSP和浮点DSP 两种。
2、在堆栈操作中,PC当前地址为4020h,SP当前地址为0033h,运⾏PSHM AR2后,PC= 4021H , SP= 0032H 。
(假设PSHM为单字指令)
3、DSP外部中断触发⽅式有电平触发和边沿触发两种触发⽅式。
4、请指出TMS320C54xDSP的状态寄存器ST0下⾯相应位的功能
ARP:辅助寄存器指针
OVA:累加器A溢出标志位
C:进位位
5、TMS320C54xDSP的内部总线主要包括程序总线、数据总线和地址总线。
三、问答题(本⼤题共4⼩题,共计24分)
1、什么是冯.诺依曼结构和哈弗结构?有何区别?。
(6分)
2、请列举可编程DSP芯⽚的主要特点(6条特点及以上)。
(6分)
(1)哈佛结构(2)多总线结构(3)流⽔线技术(4)多处理器结构
(5)指令周期短、功能强(6)运算精度⾼(7)功耗低(8)外设丰富,硬件配置强
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空间开辟了100个字的空间作为堆栈区,
请完成程序段。
(
4分)
size .set (1)
stack .usect “STACK”, size
;…
STM #stack+ (2) , SP
2、采⽤TMS320C54xDSP的定时器0产⽣⽅波,且TMS320C54xDSP的时钟频率为4MHz,
要求:周期为8ms的⽅波发⽣,从DSP的通⽤I/O引脚XF输出,定时中断周期为4ms,每中断⼀次,输出端XF引脚电平取⼀次反。
请完成下⾯程序段。
(12分)
;定时器0寄存器地址
TIM0 .set 0024H
PRD0 .set 0025H
TCR0 .set 0026H
;K_TCR0:设置定时器控制寄存器的内容
K_TCR0_SOFT .set 0b<<11 ;Soft=0
K_TCR0_FREE .set 0b<<10 ;Free=0
K_TCR0_PSC .set 1001b<<6 ;PSC=9H
K_TCR0_TRB .set 1b<<5 ;TRB=1
K_TCR0_TSS .set 0b<<4 ;TSS=0
K_TCR0_TDDR .set 1001b<<0 ;TDDR=9
K_TCR0 .set K_TCR0_SOFT|K_TCR0_FREE|K_TCR0_PSC|
K_TCR0_TRB| K_TCR0_TSS| K_TCR0_TDDR ;初始化定时器0
;根据定时长度计算公式:T=CLKOUT* (TDDR+1) * (PRD+1)
;给定TDDR=9,PRD=1599,CLKOUT主频f=4MHz,T=250ns
;T=250*(9+1)*(1599+1)=4,000,000(ns)=4(ms)
STM #1599,TIM0
STM (1),PRD0
STM #K_TCR0,TCR0 ;启动定时器0中断
RET
;定时器0的中断服务⼦程序:通过引脚XF输出⽅波波形
t0_flag .usect “vars”,1 ;当前XF输出电平标志位
;若t0_flag=1,则XF=1
;若t0_flag=0,则XF=0
time0_rev:PSHM TRN
PSHM T
PSHM ST0
(2)
BITF t0_flag,#1
BC (3),NTC ;NTC表⽰TC为0
(4)
ST #0,t0_flag
B (5)
xf_ out:RSBX XF
ST #1,t0_flag
next:POPM (6)
POPM ST0
POPM T
POPM TRN
RETE
3.TMS320C5402外接⼀个128K*16位的RAM,其结构如下图所⽰,试分析程序区和数据去的地址范围,并说明其特点。
(8分)
1、对于TMS320C54x系列DSP芯⽚,下列说法正确的是 ( C )
(A) 专⽤型DSP (B)32位DSP (C) 定点型DSP (D) 浮点型DSP
2、要使DSP能够响应某个可屏蔽中断,下⾯的说法正确的是 (B )
A.需要把状态寄存器ST1的INTM位置1,且中断屏蔽寄存器IMR相应位置0
B.需要把状态寄存器ST1的INTM位置1,且中断屏蔽寄存器IMR相应位置1
C.需要把状态寄存器ST1的INTM位置0,且中断屏蔽寄存器IMR相应位置0
D.需要把状态寄存器ST1的INTM位置0,且中断屏蔽寄存器IMR相应位置1
3、若链接器命令⽂件的MEMORY部分如下所⽰:
MEMORY
{
PAGE 0: PROG: origin=C00h, length=1000h
PAGE 1: DATA: origin=80h, length=200h
}
则下⾯说法不正确的是(A)
A、程序存储器配置为4K字⼤⼩
B、程序存储器配置为8K字⼤⼩
C、数据存储器配置为512字⼤⼩
D、数据存储器取名为DATA
5、C54X DSP的流⽔线是由( B )级(也即是由多少个操作阶段)组成。
(A) 4 (B) 6 (C) 8 (D) 10
6、假定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、AR2
B、AR4
C、AR5
D、AR6
⼆、填空题(每空2分,共20分)
1、DSP芯⽚按照其⽤途分类,可以分为通⽤型和专⽤型两种。
2、在堆栈操作中,PC当前地址为4020h,SP当前地址为0033h,运⾏PSHM AR2后,PC= 4021h , SP= 0032h 。
(PSHM AR2为单字指令)
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:在⼀个未初始化的段中保留空间(注:⽂档可能⽆法思考全⾯,请浏览后下载,供参考。
)。