您好,欢迎访问三七文档
习题一1.简述DSP芯片的主要特点DSP的主要特点有哈佛结构、多总线结构、指令系统的流水线操作、专用的硬件乘法器、特殊的DSP指令、快速的指令周期、硬件配置强。2.请详细描述冯·诺依曼结构和哈佛结构,并比较它们的不同。冯·诺依曼结构结构的特点是数据和程序共用总线和存储空间,因此在某一时刻,只能读写程序或者只能读写数据。哈佛结构的主要特点是将程序和数据存储在不同的存储空间,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。3.简述DSP系统的设计过程确定DSP系统的性能指标、进行算法优化和模拟、选择DSP芯片和外围芯片、进行硬件电路设计、进行软件设计、进行软硬件综合调试。4.在进行DSP系统设计时,如何选择合适的DSP芯片?根据系统运算量的大小、对运算精度的要求、存储器的要求、系统成本限制以及体积等要求选择合适的DSP芯片。5.TI公司的DSP产品目前有哪三大主流系列?各自的应用领域是什么?TMS320C2000——主推TMS320C24x和TMS320C28x定点DSP,主要用于数字化控制领域;TMS320C5000——TMS320C54x和TMS320C55x16位定点DSP,主要用于通信、便携式应用领域;TMS320C6000——TMS320C62x和TMS320C64x32位定点DSP、TMS320C67x32/64位浮点DSP,主要用于超高速、大容量实时信号处理的场合,如音视频技术、通信基站。习题二1.请描述TMS320C54x的总线结构。TMS320C54xDSP采用先进的哈佛结构并具有八组总线,其独立的程序总线和数据总线允许同时读取指令和操作数,实现高度的并行操作。八组16位总线的功能如下:程序总线(PB)传送从程序存储器来的指令代码和立即数。三组数据总线(CB,DB,EB)连接各种元器件,CB和DB总线传送从数据存储器读出的操作数,EB总线传送写入到存储器中的数据。四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。2.写出提取B=0365434321中的指数值的指令,执行后T中的值为多少?3.TMS320C54x芯片的CPU包括哪些部分?其功能是什么?CPU状态和控制寄存器:C54x有3个状态控制寄存器:状态寄存器0(ST0)、状态寄存器1(ST1)、处理器工作方式状态寄存器(PMST)。ST0和ST1中包含各种工作条件和工作方式状态;PMST中包含存储器的设置状态及其它控制信息。40位算术逻辑单元(ALU):输出40位的数据送往累加器A或B,进行溢出处理、进位位和双十六位算术运算。两个40位累加器A和B:可以配制成乘法器/加法器或ALU目的寄存器。桶形移位寄存器:为输入的数据定标、对累加器的值进行算术或逻辑移位。乘法器/加法器单元:在一个流水线状态周期内完成一次乘法累加(MAC)运算。比较、选择和存储单元(CSSU):专为Viterbi算法设计的进行加法/比较/选择运算的硬件单元。指数编码器:它可以在单个周期内执行EXP指令,求得累加器中数的指数值,并以2的补码形式存放到T寄存器中。4.TMS320C54x有几个状态和控制寄存器?它们的功能是什么?TMS320c54x有三个状态和控制寄存器,它们分别为:状态寄存器ST0、状态寄存器ST1和处理器方式状态寄存器PMST。ST0和ST1包括了各种工作条件和工作方式的状态,PMST包括了存储器配置状态和控制信息。5.TMS320c54x片内存储器一般包括哪些种类?如何配置TMS320c54x片内存储器。TMS320c54x片内存储器包括随机访问存储器(RAM)和只读存储器(ROM),RAM又分为两种:双访问RAM(DARAM)和单访问RAM(SARAM)。片内存储器的配置:在器件复位时MP/MC引脚上的逻辑电平被采样并存储到寄存器PMST的MP/MC位。MP/MC位的状态可以确定片内ROM的使能与否。如果MP/MC=1,器件设置为微处理器工作模式,片内ROM在程序存储空间不被使能,则从外部程序存储器0FF80H起执行程序;如果MP/MC=0,器件设置为微计算机工作模式,片内ROM被映像到程序存储器空间,则从片内ROM的0FF80H起执行程序。在复位时,如果片内RAM(包括DARAM和SARAM)没有映像到程序存储器空间,用户可以通过对寄存器PMST的OVLY位的设置来配置它们。如果使OVLY=0,则片内RAM只映像在数据存储器空间;如果OVLY=1,则片内RAM同时映像在程序存储器空间和数据存储器空间。6.TMS320c54x片内外设主要有哪些?TMS320c54x片内外设主要有通用I/O引脚、定时器、时钟发生器、主机接口(HPI)、串行口、软件可编程等待状态发生器、可编程分区转换逻辑。7.当TMS320c54xCPU接收到可屏蔽的硬件中断时,满足哪些条件才能响应中断?优先级最高的中断、状态寄存器ST1中的INTM位是0,表示允许可屏蔽中断、中断屏蔽寄存器IMR中相应的位是1。8.TMS320c54x的中断向量表是如何重定位的?DSP复位时,中断向量表的起始地址固定为0FF80H,复位后,中断向量可重新被映像到程序存储器的任何一个128字页开始的地方。中断向量地址由PMST中的中断向量指针IPTR(9位)和中断向量号(0-31)左移两位后组成。习题三1.TMS320c54x提供哪几种数据寻址方式?试举例说明它们是如何寻址的?TMS320c54x提供以下7种基本数据寻址方式:立即数寻址:指令中有一个固定的立即数。如LD#3,ASM绝对地址寻址方式:指令中有一个固定的地址(16位)。如MVPDTABLE,*AR7累加器寻址:按累加器的内容作为地址去访问程序存储器中的一个单元。如READASmem或WRITASmem直接寻址:指令编码中含有的7位地址与DP或SP一起合成数据存储器中操作数的实际地址。如STLA,@x+128间接寻址:通过辅助寄存器寻址。出现*ARx+存储器映射寄存器寻址:修改存储器映射寄存器中的值,而不影响当前数据页面指针DP和当前堆栈指针SP的值。出现MMR堆栈寻址:把数据压入或弹出系统堆栈。PUSH、POP2.在循环寻址方式中,如何确定循环缓冲的起始地址?如循环缓冲大小为32,其起始地址必须从哪开始?大小为R的循环缓冲区必须从一个N位(N是满足2NR条件的最小整数)边界开始。如循环缓冲大小为32,则循环缓冲区必须从低6位为0的地址XXXXXXXXXX000000开始3.略4.请描述TMS320c54x的位倒序寻址方式。设FFT长度N=16。AR0应赋值为多少?若AR2中存放的数据存储器地址为FF00H,经过8次*AR2+0B寻址,访问的单元地址依次为多少?位倒序寻址方式中,AR0存放的整数N是FFT点数的一半。另一个辅助寄存器指向数据存放的单元。当使用位倒序寻址把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左到右,而不是从右到左。FFT长度为16时,AR0赋值为8,访问的单元地址依次为:*AR2+0B;AR2=FF08H(第1次后)*AR2+0B;AR2=FF04H(第2次后)*AR2+0B;AR2=FF0CH(第3次后)*AR2+0B;AR2=FF02H(第4次后)*AR2+0B;AR2=FF0AH(第5次后)*AR2+0B;AR2=FF06H(第6次后)*AR2+0B;AR2=FF0EH(第7次后)*AR2+0B;AR2=FF01H(第8次后)5.双数据存储器操作数间接寻址使用哪几种类型?所用辅助寄存器只能是哪几个?其特点是什么?双数据存储器操作数间接寻址类型为*ARx、*ARx-、*ARx+、*ARx+0%四种。所用的辅助寄存器只能是AR2、AR3、AR4、AR5,双操作数间接寻址特点是:占用程序空间小,运行速度快。6.直接寻址方式有哪两种?其实际地址如何生成?当SP=2000H,DP=2,偏移地址为25H时,分别寻址的是哪个存储空间的哪个单元?两种方式是数据页指针直接寻址、堆栈指针直接寻址。CPL=0,数据存储器地址的低7位与DP中的9位字段相连组成16位的数据存储器地址;CPL=1,数据存储器地址的低7位与SP的16位地址想家形成16位的数据存储器地址。当CPL=0时,寻址的是数据存储空间的0125h地址单元;当CPL=1时,寻址的是数据存储空间的2025h地址单元7.TMS320c54x指令系统包括哪几种基本类型的操作?TMS320c54x指令系统包括算术运算指令、逻辑运算指令、程序控制指令以及加载和存储指令四种基本类型。习题四1.汇编器和链接器如何对段进行管理?汇编器对段的处理是通过段伪指令来区别各个段的,并将段名相同的语句汇编在一起。汇编器的5条伪指令可识别汇编语言程序的各个部分:.bss未初始化段,给未初始化变量保留空间.usect未初始化段,如定义一个缓冲区,在一个未初始化的段中保留空间.text已初始化段,即代码段,该段包含程序代码.data已初始化段,一般是指常数表,该段包含已初始化的数据.sect已初始化段,如定义一段完成某项功能的代码为一个段,可以命名。链接器对段的处理,有两个主要任务:(1)MEMORY命令用来定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度。(2)SECTION命令告诉链接器如何将输入段组合成输出段,以及将输出段放在存储器的什么位置。2.汇编程序中的伪指令有什么作用?其中段定义伪指令有哪些?初始化段和未初始化段有何区别?伪指令不生成最终代码(即不占据存储单元),但对汇编器、链接器有重要的指示作用。包括段定义、条件汇编、文件引用、宏定义等。段定义伪指令:.text——此段存放程序代码.data——此段存放初始化了的数据.bss——此段存入未初始化的变量.sect‘名称’——定义一个有名段,放初始化了的数据或程序代码区别:当汇编器遇到初始化段时将停止当前段的汇编,然后将紧接着的程序代码或数据汇编到指定的段中,直到再次遇到另一条这些指令为止,各个段中的数据都是连续安排到存储器中的。当汇编器遇到未初始化短时,并不结束当前段的汇编,只是暂时从当前段脱离出来,并开始对新的段进行汇编,两伪指令可以出现在一个已初始化段的任何位置上,而不会对它的内容产生影响。3.链接命令文件有什么作用?如何使用MEMORY命令和SECTIONS命令?链接命令文件内容和汇编程序中段定义伪指令有联系吗?链接命令文件(.cmd文件)通过段定位控制命令分配程序代码空间、数据代码空间、程序运行空间、堆栈空间。在链接命令文件中可以使用MEMORY和SECTIONS命令来定义目标系统的存储器配置图及段的映射。有联系。段伪指令SECTIONS负责告诉链接器将输入文件中用.text、.data、.bss、.sect等伪指令定义的段配置到MEMORY命令中。4.C语言程序设计时,C编译器会产生哪些段?初始化段:.text:段包括可执行代码、字符串和编译器产生的常数。.cinit:初始化变量和常数表。.const:字符串和以const关键字定义的常量。.switch:包含switch语句跳转表。未初始化段:.bss:为全局变量和静态变量保留空间,在程序启动后,C初始化引导程序将数据从.cinit段复制到.bss段。.stack:为C的系统堆栈分配存储空间,用于变量传递及分配局部变量。.sysmem:为动态分配存储器分配保留空间,为C语言函数malloc、calloc、realloc动态地分配存储器。若C程序中未用到这些函数,则C编译器不产生该段。5.为什么通常需要采用C语言和汇编语言的混合编程方法?C编译器虽然提高了软件的开发速度,方便软件的修改和移植,但无法实现在任何情况下都能够合理地利用DSP芯片的各种资源。此外,对DSP芯片的某些硬件控制,用C语言就不如用汇编程序方便,有些甚至无法用C语言实现。C和汇编语言混合编程开发能更好的达到设计要求,完成设计任务。6.用C语言和汇编语言混合编程时,在C程序中如何调用汇编子程序(函数)?如何进行变量的
本文标题:DSP课后习题
链接地址:https://www.777doc.com/doc-2910574 .html