DSP习题及解答.doc_第1页
DSP习题及解答.doc_第2页
DSP习题及解答.doc_第3页
DSP习题及解答.doc_第4页
DSP习题及解答.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 引言1. 一个存储单元有哪两个属性?寄存器与存储器有什么不同?一个存储单元的两个属性是:地址与值。寄存器是特殊的存储器,读写寄存器可引发相关电路的动作。2. 由单片机构成的最小系统有哪几部分构成?由单片机构成的最小系统包括电源和晶体振荡器。3. DSP是哪三个英文词的缩写?中文意义是什么?DSP是Digital Signal Processor的缩写,中文意义是数字信号处理器。4. 哈佛结构计算机与冯诺伊曼结构计算机有什么差别?哈佛结构计算机有独立的数据总线和程序总线,冯诺伊曼结构计算机数据和程序共用一套总线。5. 微控制器与微处理器有什么不同?微控制器内部可固化程序,而微处理器内部不含程序。6. TMS320LF24xA系列单片机有几套总线?分别起什么作用?总线中数据线和地址线分别有多少条?最大可以访问多少存储单元?每个存储单元由多少位组成?TMS320LF24xA系列单片机有三套总线,分别是程序读总线、数据读总线和数据写总线。每套总线中各有16条数据线和16条地址线,最大可以访问64K个存储单元,每个存储单元由16位组成。7. 什么是操作码?什么是操作数?操作码用于表示指令所要执行的动作,操作数表示指令所涉及的数据。8. 实现一条指令的功能要经过哪四个阶段?CPU为什么要采用流水线结构?实现一条指令的功能要经过“取指”、“译码”、“取操作数”和“执行”四个阶段,CPU采用流水线结构可以同时使多条指令处于不同的处理阶段,实现并行处理,提高CPU的指令吞吐率。第二章 寻址方式与主要寄存器操作1. 有哪三种寻址方式?三种寻址方式是:立即数寻址、直接寻址和间接寻址。2. 指令LACL #10与LACL 10有什么区别?各为什么寻址方式?含义是什么?指令LACL #10将常数10装载到累加器,指令LACL 10将地址10(假设DP为0)处的值装载到累加器。前者是立即数寻值,操作数在指令中;后者是直接寻址,操作数的地址最低7位在指令中。3. 指令LACC #1234h和LACC #0ABCDh执行后累加器ACC中为何值?与SXM的状态有关吗?指令LACC #1234h执行后累加器ACC中为0x00001234。指令LACC #0ABCDh执行后,当SXM=0时,累加器ACC中为0x0000ABCD;当SXM=1时,累加器ACC中为0xFFFFABCD。4. 要用直接寻址将地址0x03F8处的值装入累加器,DP中应装入什么值?指令中包含这个地址的哪几位? DP中应装入0x07,指令中包含地址的低7位,即0x78。5. 下列程序执行后,ARP、ARB、AR2和AR3的值分别是什么?累加器装入的值来自哪个地址?LARAR2, #100hLARAR3, #200hMAR*, AR2LACL*+, AR3ARP为3,ARB为2,AR2为0x101,AR3为0x200。累加器装入的值来自0x100。6. 累加器中0x12345678除了表示整数外还可以表示小数,如果是Q31格式表示什么?如果是Q16格式呢?Q31格式0x12345678表示0x123456782-31Q16格式0x12345678表示0x123456782-167. 16位数0x1234左移0至15位可以表示哪些整数?如果是Q31格式可以表示哪些小数?如果是Q16格式呢?整数0x1234, 0x2468, 0x48D0, , 0x091A0000Q31小数0x12342-31, 0x12342-30, , 0x12342-16Q16小数0x12342-16, 0x12342-15, , 0x12342-18. 指令LACC #1234h, 2和指令LACC #0ABCDh, 2执行后累加器ACC中为何值?与SXM的状态有关吗?指令LACC #1234h, 2执行后累加器ACC中为0x000048D0。指令LACC #0ABCDh, 2执行后,当SXM=0时,累加器ACC中为0x0002AF34;当SXM=1时,累加器ACC中为0xFFFEAF34。9. 累加器中是0x12345678,指令SACH *, 2和指令SACL *, 2分别保存的是什么值?指令执行后,累加器中是什么值?指令SACH *, 2保存的是0x48D1,指令SACL *, 2保存的是0x59E0。指令执行后,累加器中仍为0x12345678。第三章 算术逻辑运算1. 累加器中原为0x0000ABCD,与0x6789相加后,C和OV有什么变化?C是0,OV不变。2. 累加器中原为0xFFFFABCD,与0x6789相加后,C和OV有什么变化?C是1,OV不变。3. 累加器中原为0x7FFFABCD,与0x6789相加后,C和OV有什么变化?C是0,OV是1。4. 累加器中原为0x7FFFFFFE,加2后,累加器中是什么值?与OVM有什么关系?当OVM=0时,累加器中是0x80000000;当OVM=1时,累加器中是0x7FFFFFFF。5. 累加器中原为0x80000001,减2后,C和OV有什么变化?累加器中是什么值?与OVM有什么关系?C是1,OV是1。当OVM=0时,累加器中是0x7FFFFFFF;当OVM=1时,累加器中是0x80000000。6. 累加器中原为0xFFFFABCD,与0x8888相加后,再与0x1234相加,C和OV的值是什么?与我们所希望的结果相同吗?C是0,OV不变。我们所希望的结果是C为1,OV不变。7. 完成下列32位加法程序:MAR*, AR2LACL*+, AR3; xLADDS*+; yLADD*+, 16, AR2; yHADD*+, 16; xH8. 接着上题完成下列64位加法程序。LARAR2, #(x + 2)LACL*+, AR3; xHLADDC*+; yHLADD*+, 16, AR2; yHHADD*+, 16; xHH9. 仿照上两题完成64位减法程序。LACL*+, AR3; xLSUBS*+; yLSUB*+, 16, AR2; yHADD*+, 16; xHLACL*+, AR3; xHLSUBB*+; yHLSUB*+, 16, AR2; yHHADD*+, 16; xHH10. 累加器中是0x00001234,写出下列程序执行完第一条指令和最后一条指令后的CPU状态(ACC,C和OV),并解释结果:SUBC#5; ACC = 0x00002468, C = 0, OV = xRPT#14SUBC#5; ACC = 0x000003A4, C = 0, OV = x商3A4(=932),余0。11. ABS和NEG指令是对哪里的数据进行操作?对C有影响吗?有什么影响?对累加器中的数据进行操作。C清零,只有0的NEG,C为1。12. 什么值会引起执行ABS或NEG指令发生溢出?此时累加器中是什么?与OVM有关吗?0x80000000会引起执行ABS或NEG指令发生溢出。当OVM=0时,累加器中是0x80000000;当OVM=1时,累加器中是0x7FFFFFFF。13. 累加器中是0x3456789A,指令NORM *-执行后当前辅助寄存器的内容有什么变化?TC值是什么?再执行一次这条指令之后呢?如果累加器中原为0xCDEF1234呢?指令NORM *-执行后当前辅助寄存器的内容减1,TC为0。再执行一次这条指令之后,当前辅助寄存器的内容不变,TC为1。如果累加器中原为0xCDEF1234,结果相同。14. 为什么在NORM指令之后的两条指令不能改变当前辅助寄存器的值也不能改变对当前辅助寄存器的指定?因为NORM指令对当前辅助寄存器操作在第4阶段(执行阶段),而其它指令对辅助寄存器及对当前辅助寄存器的指定发生在第2阶段(译码阶段)。15. SFR指令在什么情况下是算术右移,在什么情况下是逻辑右移?SFL指令为什么不需要分算术左移和逻辑左移?ROL指令与SFL指令有什么不同?SFR指令当SXM=1时是算术右移,当SXM=0时是逻辑右移。SFL指令进行左移,累加器低位总是补0。ROL指令将C的原值移入累加器低位,而SFL指令则对累加器低位补0。16. 分别将累加器中第0位、第3位清零、置1或反转,写出所需的三条指令,采用立即数寻址。ADD#9; 清0OR#9; 置1XOR#9; 反转17. 写出程序,将x中的第0位、第3位复制到y中,y的其它位保持不变。LACLyAND#9; y中指定位清0SACLyLACLxAND#9; 保留x中指定位ORy; 与y中其它位合并SACLy18. 乘法指令为什么要区分有符号数和无符号数?乘法的结果与是否有符号有关。19. MPY指令的一个乘数由寻址方式得到,另一个乘数在哪里?两个乘数各为多少位?乘积放在哪里?乘积是多少位?另一个乘数在TREG中,两个乘数都是16位,乘积放在PREG中,乘积是32位。20. 为什么要对乘积移位?有哪几种选择?各有什么用途?两个小数相乘后需要调整小数点的位置,乘加时要预留求和的空间。不移位,用于整数或无符号Q16小数相乘。左移1位,用于有符号Q15小数相乘。左移4位,用于13位有符号Q12小数与Q15小数相乘。右移6位,用于累加乘积。21. 采用间接寻址,写出保存与恢复TREG和PREG的程序。保存:SPM0SPH*+SPL*+MPY#1SPL*+; TREG恢复:MAR*-; SP指向栈顶MAR*-; 跳过TREGLT*+; PREG低16位MPY#1LT*-; TREGMAR*-LPH*-; PREG高16位22. 要将乘积移到累加器用什么指令?其后累加器中的内容与PREG的内容相同吗?与什么有关?要将乘积加到累加器或从累加器减掉各用什么指令?用PAC指令将乘积移到累加器,其后累加器中的内容与PREG的内容不一定相同,取决于PM的值,PM=0时相同。用APAC指令将乘积加到累加器,用SPAC指令从累加器减掉乘积。23. MAC指令与MPYA指令有什么不同?MAC指令还有一个操作数是什么?MAC指令可以指定两个操作数,而MPYA指令的一个操作数是TREG。MAC指令还有一个操作数是程序存储器PMEM中的地址处的值。第四章 I/O与存储器1. 通过指令能操作哪些地址?对这些地址的操作都有意义吗?通过指令能操作64K字数据存储器地址、64K字程序存储器地址和64K字I/O地址。对这些地址的操作不全都有意义,因为有些地址可能没有对应实际的物理存储器或外设。2. 2407A中有哪些物理存储器,各在什么地址?哪些是可配置的,如何配置?32K字Flash ROM,位于程序存储器地址0x00000x7FFF。2K字SARAM,位于程序存储器地址0x80000x87FF和/或数据存储器地址0x08000x0FFF。256字DARAM B0,位于程序存储器地址0xFF000xFFFF或数据存储器地址0x02000x02FF。256字DARAM B1,位于数据存储器地址0x03000x03FF。32字DARAM B2,位于数据存储器地址0x00600x007F。内核寄存器位于数据存储器地址0x00000x005F。外设寄存器位于数据存储器地址0x70000x7FFF。Flash ROM由MP/MC引脚或SCSR2的MP/MC位配置。SARAM由SCSR2的PON位和DON位配置。DARAM B0由ST1的CNF位配置。3. 操作外设一定要使用I/O指令吗?操作外设不一定要使用I/O指令,有许多外设采用了存储器映射I/O,可以使用数据读写指令操作。4. 用数组x4可以实现延迟0至3拍,写出所需程序。MAR*, AR2LARAR2, #(x + 2)RPT#2DMOV*-5. 将SCSR2的PON位置1,DON位清零,用SPLK指令写出相应程序。SCSR2.set7019hPON.set0DON.set1SPLK#(1 PON) | (0 DON), SCSR26. 数组x8中的数据按正常顺序排列,将它们按二进制逆序(即0,4,2,6,1,5,3,7)排列存入数组y8,用BLDD指令写出程序,并写出做相反的操作的程序。MAR*, AR2LARAR0, #4LARAR2, #yRPT#7BLDD#x, *BR0+反之,则用BLDD*BR0+, #x7. 要将程序存储器中的一段数据复制到数据存储器,可以用什么指令?要做相反操作呢?用BLPD指令或TBLR指令,反之则用TBLW指令。8. 从I/O端口1234h读一个数据,循环左移一位后,再写到这个I/O端口,写出程序。IN*, 1234hLACL*ROLSACL*OUT*, 1234h9. 写出CMD文件,使.data中的数据分配到位于0x0200-0x03FF的DARAM B0和B1中,使.text中的程序分配到位于0x8000-0x87FF的SARAM中。这个地址分配是在编译阶段还是链接阶段实现的?MEMORY PAGE 0: SARAM:origin = 0x8000, length = 0x0800 PAGE 1: RAMB0B1:origin = 0x0200, length = 0x0200SECTIONS .text:= SARAMPAGE 0 .data:= RAMB0B1PAGE 1这个地址分配是在链接阶段实现的。第五章 对程序的控制1. 状态与控制寄存器ST0和ST1中各位的含义:DP、ARP、ARB、C、OV、TC、SXM、OVM、PM、INTM、CNF、XF?DP直接寻址时的高9位地址,ARP指定当前AR,ARB保存ARP改变之前的值。C进位,OV溢出,TC测试与控制。SXM符号扩展方式,OVM溢出方式,PM乘积移位方式,INTM中断屏蔽。CNF内存B0配置,XF引脚状态与控制。2. LST指令对ARP和ARB的影响?SST指令直接寻址的特点?LST装入ARP时不影响ARB,装入ARB时同时装入ARP。SST直接寻址时只对0页,与DP无关。3. ST0和ST1中哪些位可以由SETC指令和CLRC指令设置和清除?C、TC、SXM、OVM、INTM、CNF、XF4. BIT指令和BITT指令中的位号是从高位开始吗?是5. 硬件栈有几级?压入和弹出时有什么变化?8级,压入和弹出时整体移动。6. BCND指令有哪些条件码选项?EQ/NEQ、LT/GEQ,LEQ/GT,NC/C,NOV/OV,NTC/TC,BIO,UNC7. 用BANZ指令写出循环程序。MAR*, AR2LARAR2, #(n 1)L:BANZL, *-8. CALL指令与B指令有什么相同?有什么不同?控制转移到指定地址,CALL将返回点保存在硬件栈上。9. 中断号的范围?哪些是特殊的?0-31,特殊0、1-6、17、1810. RET指令如何实现返回?将硬件栈中返回点地址弹出到PC。第六章 中断系统1. 中断向量表存储在什么位置,有多少项,每项可存放什么内容?其中哪些是硬件中断?中断向量表存储在程序存储器的地址0处,有32项,每项可存放2个字,通常是跳转指令,也可以是开中断和返回指令。INT1至INT6是硬件中断。2. INTM,IMR和IFR各是什么?有什么作用?INTM是全局中断允许(屏蔽)位,为0时允许可屏蔽中断。IMR是内核中断屏蔽(允许)寄存器,其中低6位分别控制6个硬件中断,为1时允许相应的可屏蔽中断。IFR是内核中断标志寄存器,其中低6位分别对应6个硬件中断,为1时表示相应的中断正在待决。3. 简述硬件对中断的处理流程。有中断请求时,IFR中相应的位置位,当INTM为0时,选择IFR和IMR中对应位都是1的中断中优先级最高的,清除IFR中对应位,发出中断应答,将INTM置为1,转向对应的中断向量。4. 简述PIE的中断请求过程和中断应答过程。每组中断源中只要有至少一个发出请求,则向内核发出中断请求。当内核发出中断应答时,从程序地址总线得到中断向量。从对应的一组中找出发出请求的优先级最高的中断源,将中断号存入PIVR,向对应中断源发出中断应答。5. 中断服务过程如何确定是哪个中断源发出的中断?读取PIVR。6. 为什么在中断服务过程中要保存和恢复运行环境?运行环境包括哪些内容?所有这些内容都要保存吗?中断服务过程不能改变运行环境,所以要在中断服务过程入口处保存运行环境,在出口处恢复运行环境。运行环境包括状态寄存器、累加器、辅助寄存器、临时寄存器、乘积寄存器和硬件栈。只需要保存和恢复在中断服务过程中要改变的内容。第七章 事件管理器与定时器1. 2407A有几个事件管理器?事件管理器的核心部件是什么?2407A有两个事件管理器,事件管理器的核心部件是定时器。2. 简述定时器的工作原理。定时器对输入时钟进行计数,当计数值达到周期值时再重新从0开始计数。3. 周期寄存器TxPR和比较寄存器TxCMPR为什么要采用双缓冲结构?这两个寄存器在寄存器工作时由硬件使用,为了方便软件随时设置这两个寄存器,采用双缓冲结构。软件写入影子寄存器,由硬件在适当的时机将影子寄存器中的值转入相应的工作寄存器。4. 定时器有哪几种计数方式?能产生哪些中断?定时器有四种计数方式:启停方式,连续上计数方式,有方向上/下计数方式,连续上/下计数方式。定时器能产生四种中断:周期、比较、上溢和下溢。5. 要在程序中使用定时中断,需要设置哪些寄存器?在ISR中必须做什么?需要设置GPTCONA,TxCON和TxPR,在ISR中必须清除相应的中断标志。第八章 串行通信接口与数字IO1. 串行通信的一个数据帧由哪几部分组成?由4部分组成:起始位、数据位、校验位和停止位。2. 什么是波特率(Baud Rate)?表示什么意思?每帧10位时,理想状况允许波特率有多大误差?波特率是串行通信的速率,表示每秒收发多少位。每帧10位时,理想状况允许波特率有2.5%的误差,实际状况允许的误差略小。3. 异步通信中双方如何实现同步?双方采用同样的波特率,并由停止位到起始位的边沿实现同步。4. SCI初始化时需要设置哪几个寄存器?查询方式通信时,如何发送与接收一个字节?SCI初始化时需要设置5个寄存器:SCICCR、SCICTL1、SCICTL2、SCILBAUD和SCIHBAUD。查询方式发送时,查询SCICTL2中的位TXRDY。查询方式接收时,查询SCIRXST中的位RXRDY。5. S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论