当前位置:首页 > DSP应用技术教程 部分习题答案
6. 已知累加器A的值为FF FF81 5432h,暂存器T的值为0010h,执行指令EXP A和NORM
A 后,累加器A和暂存器T的值各为多少? 答:
累积器A的值为FF 8154 3200h,暂存器T的值为8h。
9.TMS320C54x 的总存储空间为多少?可分为哪几类?它们的大小是多少? 答:
TMS320C54x 的总存储空间为192K字,分为3个可选择的存储空间:64K字的程序存储空间、64K字的数据存储空间和64K字的I/O空间。
10.TMS320C54x片内随即存储器有哪几种?片内与片外RAM的区别是什么? 答:参见P62-63 3.4节存储器部分。
11. 简述三种存储器空间各自的作用是什么? 答:
1)程序存储器空间用来存放要执行的指令和执行中所需的系数表。
2)数据存储器空间用来存放执行指令所要用的数据,包括需要处理的数据或数据处理的中间结果。
3)I/O存储器空间可与存储器映射外围设备相接口,也可以作为附加的数据存储空间使用。
12. I/O空间是在片内还是在片外?访问I/O的实质是什么? 答:
I/O空间是在片外,访问I/O是对I/O映射的外部器件进行访问,而不是访问存储器。 13. 数据页0(0h~7Fh)能否被映射到程序存储空间? 答: 不能
14. TMS320C54x 存储空间的配置是受MP/MC、OVLY和DROM 3个位控制的。如果想使片
上RAM同时映射到数据存储空间和程序存储空间,那么MP/MC、OVLY和DROM的值应该如何设置? 答:
OVLY=1
17. TMS320C54x片内外设主要有哪些?
答:
通用I/O端口、时钟发生器、软件可编程等待状态发生器、可编程块切换逻辑、定时器、主机接口、串行口、DMA控制器等。
19.时钟发生器由哪些部分组成?他们是如何工作的? 答:参考P73-77 3.5.2节时钟发生器部分。
21. TMS320C54x复位的条件有哪些?通常TMS320C54x有几种复位方式?各是什么?上电复位后,第一条程序指令所在的地址是多少? 答:
TMS320C54x复位期间,处理器进行以下操作:
(1) 处理器工作方式状态寄存器PMST中的中断向量指针IPTR被设置成1FFh。 (2) 处理器工作方式状态寄存器PMST中MP/MC被设置成与引脚MP/MC状态相同的值。
(3) 程序计数器PC设置成FF80h。
(4) 扩展程序计数器XPC被清零(如果XPC可用)。
(5) 不管MP/MC位的状态如何,将FF80h加到地址总线上。 (6) 数据总线变为高阻状态。 (7) 控制线处于无效状态。
(8) 产生应答信号IACK。
(9) 状态寄存器ST1中的中断方式位INTM置1,关闭所有可屏蔽中断。 (10) 中断标志寄存器IFR被清零,以清除中断标志。 (11) 单指令重复计数器(RC)被清除。
(12) 产生同步复位信号SRESET,用于初始化片内外设。 (13) 状态寄存器ST0=1800h,即以下的状态位被设置成它们的初始值:ARP=0,TC=1,C=1,OVA=0,OVB=0,DP=0。
(14) 状态寄存器ST1=2900h,即以下的状态位被设置成它们的初始值:BRAF=0 ,CPL=0,XF=1,HM=0,INTM=1,OVM=0,SXM=1,C16=0,FRCT=0,CMPT=0,ASM=0。
(15) 处理器工作方式状态寄存器PMST以下的状态位被设置成它们的初始值:OVLY=0,AVIS=0,DROM=0,CLKOFF=0。
需要注意的是,复位期间,其余的状态位和堆栈指针SP没有被初始化,需要使用用户程序对它们进行初始化。如果MP/MC=0,那么处理器从片内ROM开始执行程序,否则,处理器从片外程序存储器开始执行程序。
TMS320C54x的复位有两种方式,分别为软件复位和硬件复位。软件复位是通过执行指令实现处理器的复位;硬件复位是通过硬件复位电路实现处理器的复位。硬件复位电路包括上电复位、手动复位和自动复位。
上电复位后,第一条程序指令所在的地址是FF80h。
22. 在闲置方式1(IDLE1)、闲置方式2(IDLE2)、闲置方式3(IDLE3)和保持方式这4种省电方式中,哪一种最省电?哪几种能够被内部中断唤醒? 答:
闲置方式3(IDLE3)最省电。闲置方式1(IDLE1)能够被内部中断唤醒
23. TMS320C54x中断分为哪几类?其中的可屏蔽中断在什么情况下可以被CPU响应? 答:
TMS320C54x 支持软件中断和硬件中断。软件中断由程序指令产生(INTR或TRAP)。硬件中断由设备的一个信号产生,硬件中断包含两种类型,分别为外部硬件中断和内部硬件中断。外部硬件中断由外部中断接口的信号触发;内部硬件中断由片内外设的信号触发。
硬件或软件中断发送了一个中断请求后,CPU必须要决定是否响应该中断。软件中断和不可屏蔽中断立即被响应,而可屏蔽的硬件中断只有在满足以下3种条件时才能被响应:
(1) 优先级最高。当同时有多个硬件请求中断时,TMS320C54x根据优先级对其进行响应。
(2) 状态寄存器ST1中的INTM位为0。表示允许可屏蔽中断,可以用“RSBX INTM”指令来对INTM复位。
(3) 中断屏蔽寄存器IMR中的相应位为1。 CPU响应中断时,让PC转到适当的地址取出中断向量,并发出中断向量信号IACK,清除响应的中断标志位。
24. 若处理器工作方式状态寄存器PMST的值设为01A0h,而中断向量为INT3,那么中断响应时,中断向量地址为多少?
答:该题自己思考解答。参考P92 3.7.4节。重点是中断向量地址计算。
26. TMS320C54x的流水线操作分为几个阶段?分别叙述流水线操作各阶段的功能?
答:
流水线的6个操作阶段分别为预取指(P)、取指(F)、译码(D)、访问(A)、读数(R)和执行(X)。每个流水线操作阶段各占用一个机器周期。各操作阶段的功能如下:
(1) 程序预取指(P):将下一条指令的地址,放在程序地址总线(PAB)上。 (2) 程序取指(F):从程序总线(PB)上取指令字,并将该指令字放入指令寄存器(IR)中。
(3) 译码(D):将指令寄存器(IR)中的内容译码,确定要访问存储器的类型以及数据地址产生单元(DAGEN)和CPU的控制时序。
(4) 访问(A):数据地址产生单元(DAGEN)在数据地址总线(DAB)输出要读的操作数的地址。如果还有第二个操作数,则在另一个数据地址总线CAB上输出相应的地址。同时更新间接寻址模式下的辅助寄存器(ARx)和堆栈指针(SP)。
(5) 读数(R):从数据总线DB和CB上读取操作数,完成操作数的读取。同时,操作数的写入开始。如果需要写数据,则写数据的地址放在数据写地址总线(EAB)上。对存储器映射寄存器而言,数据是从存储器中读取,写数据时通过DB写入选择的存储器映射寄存器。
(6) 执行(X):在这个阶段完成指令的执行,并将数据放在数据写总线(EB)上完成操作数的写入。
第4章 TMS320C54x 指令系统
1. TMS320C54x提供哪几种数据寻址方式?各有什么特点?应该应用在什么场合? 答:
TMS320C54x 提供了以下7种基本的数据寻址方式: (1) 立即数寻址:指令中直接包含了所需要的操作数。 (2) 绝对寻址:指令中包含所要寻址的存储单元的地址。
(3) 累加器寻址:利用累加器的数值作为地址来读写程序存储器。
(4) 直接寻址:指令中包含数据存储器地址的低7位。这7位作为偏移地址与数据页指针DP或堆栈指针SP相结合共同构成16位的数据存储器实际地址。
(5) 间接寻址:根据辅助寄存器的内容来寻找存储器映射寄存器地址,地址的低7位来自指令或某个辅助寄存器的低7位,高9位设置为0。
(6) 存储器映射寄存器寻址:修改存储器映射寄存器中的值而不影响当前数据页指针DP或堆栈指针SP的值。
(7) 堆栈寻址方式:地址来自堆栈指针SP,把数据压入和弹出系统堆栈。
2.绝对地址寻址有哪几种?它们可以访问哪些地址空间?有什么特点?其中的长立即数寻址方式的指令能不能与循环指令RPT和RPTZ一起使用? 答:
绝对寻址有以下四种类型:
1) 数据存储器地址寻址:数据存储器地址(dmad)寻址是用一个符号(符号地址)
或一个表示16位地址的立即数来指明寻址的数据存储单元的16位绝对地址。 2) 程序存储器地址寻址:程序存储器地址(pmad)寻址是用一个符号(符号地址)
或一个表示16位地址的立即数来指明寻址的程序空间的地址。
3) 端口地址寻址:端口地址(PA)寻址是用一个符号或一个数值来指明其外部I/O口
地址。
4) 长立即数*(lk)寻址:长立即数*(lk)寻址是用一个符号或一个数值来指明寻址的数据
存储空间的地址。这种寻址方式可以用在所有支持单数据存储器(Smem)操作数的指令中。
使用长立即数寻址方式的指令不能与单循环指令RPT和RPTZ一起使用。 3. 直接寻址方式有两种方式,它们是什么?如何控制?当SP=2000h,DP=2,偏移地
址为25h时,分别寻址的是哪个存储空间的哪个地址单元? 答:
直接寻址方式包括DP直接寻址和SP直接寻址两种方式。当CPL=0时,寻址方式为以DP为基地址的直接寻址方式,简称DP直接寻址;当CPL=1时,寻址方式为以堆栈指针SP为基地址的直接寻址方式,简称SP直接寻址。
当CPL=0时,DP=2,dmad=25h,实际地址为0100h+25h=0125h。 当CPL=1时,SP=2000h,dmad=25h,实际地址为2000h+25h=2025h。
4. 当使用位倒序寻址时,应使用什么辅助寄存器?试述地址以位倒叙方式产生的过程。 答:
位倒序寻址是DSP的一种特殊处理方式,是专门为快速傅立叶变换FFT而设计的,这种寻址方式可以显著提高程序的执行速度和存储区的利用效率。使用时,AR0存放的整数N为FFT点数的一半,另一个辅助寄存器ARx指向数据存放的单元,当使用位倒序寻址把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是通常的从右向左。
5. 在循环寻址方式中,如何确定循环缓冲的起始地址?如循环缓冲大小为32,其起始地
址必须从哪开始? 答:
长度为R的缓冲器必须从N位地址的边界开始(即循环缓冲器基地址的N个最低有效位必须为0),N是满足2N>R条件的最小整数。长度R=32的循环缓冲器必须从地址XXXX XXXX XX00 00002(N=6,26>32,该地址的最低6位为0)开始,同时32必须存入BK。
6. 若辅助寄存器AR0的值为0x0010h,AR3的值为0x0310h,循环缓冲起始地址为0300h,
BK=31,请分别给出下列寻址方式修改后的辅助寄存器的值。
(1) *AR3+% (2) *AR3+0% (3) *AR3-0% (4) *+AR3(-2) (5) *AR0(0100H) 答:
寻址方式修改后的辅助寄存器的值
(1) AR3=0X0311H (0X0300H<0X0311H<0X031FH)
(2) AR3=0X0310H+0X0010H=0X0320H>0X031FH 则:AR3=0X0320H-1FH= 0X0301H (3) AR3=0X0310H-0X0010H=0X0300H (4) AR3=0X0310-2= 0X030EH (5) AR0=0X0100H
7. 双数据存储器操作数间接寻址使用哪几种类型?所用辅助寄存器只能是哪几个?其特
点是什么? 答:
双数据存储器操作数间接寻址类型为*ARx、*ARx-、*ARx+、*ARx+0%。所用4个辅助寄存器为AR2、AR3、AR4、AR5。双数据存储器操作数间接寻址的特点是:占用程序空间小,运行速度快,在一个机器周期内通过2个16位数据总线(C和D)读两个操作数。 8. 堆栈寻址的作用是什么?压栈和弹出堆栈操作是如何实现的? 答:
当发生中断或子程序调用时,堆栈用来自动地保存程序计数器PC的值。堆栈也可以用
共分享92篇相关文档