结合信号处理算法的特点,说明DSP是一种特别适合于进行数字信号处理运算的微处理器?答:根据数字信号处理算法的特点,对芯片内部结构进行了特定的优化;它主要应用是实时地实现各种数字信号处理算法。其中滤波运算的特点是大量的乘加运算;频繁的访问存储器;FFT运算的特点是碟形运算,码位倒置以及大量的乘加、减运算,其中样本按码位倒置的顺序排列,DSP处理器应具有对应的寻址方式,否则读取样本将花费大量的时间频繁的访问存储器,读取系数和样本,保存结果。大多数信号处理算法都是由滤波、变换、卷积和相关等一些基本的运算构成;很多信号处理任务都要求在限定的时间内完成,即是信号处理的实时性要求。DSP的特点:1.高效的内部总线;2.灵活的寻址方式;3.单周期乘累加运算;4.指令流水线;5.硬件循环;6.超标量操作等。2)简述处理器的基本组成,并指出冯〃诺依曼结构和哈佛结构的区别。处理器的基本组成:中央处理器(CPU)、内部总线结构、功能寄存器、数据存储器、程序存储器、I/O口、串行口、中断系统、定时器;冯.诺依曼结构:采用单存储空间,即程序指令和数据公用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的;哈佛结构:采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大提高了数据处理能力和指令的执行速度,非常适合与实时的数字信号处理。3)简述TMS320F2812处理器CPU的组成及特点。TMS320F2812处理器CPU的组成:保护流水线机制、独立的寄存器空间、算术逻辑单元ALU、地址寄存器算术单元ARAU、桶形移位器、乘法器;TMS320F2812处理器CPU的特点:16X16位和32X32位乘法累加操作、哈佛总线结构、快速中断响应和处理、统一的存储器规划、4M的线性程序地址、4M的线性数据地址、高效的代码(C/C++和汇编语言)、TMS320F24X/LF240X处理器源代码兼容。4)简述TMS320F2812的寄存器分类及各寄存器的特点。累加器ACC:是CPU的主要工作寄存器,是可单独进行16位/8位访问的32位寄存器。乘法运算类寄存器:被乘数寄存器(XT),存放32位乘法的一个被乘数(32位有符号整数),可分为两个独立的16位寄存器;结果寄存器(P),存放乘法运算结果,可分为两个独立的16位寄存器,对这个寄存器的内容进行移位操作时由乘积移位模式(PM)位决定。数据指针类寄存器:数据页指针(DP):16位寄存器,用于直接寻址,存放数据空间的数据页指针;堆栈指针(SP):16位寄存器,实现系统的软件堆栈(堆栈寻址),对低64K字数据空间进行寻址,复位后SP的初值为0400H。辅助寄存器(XAR0~XAR7):主要用于地址指针指向寄存器和通用目的寄存器。程序控制类寄存器:程序计数器(PC):当流水线满的时候,22位PC指针总是指向当前操作的指令;返回程序计数器(RPC):存放返回地址;中断控制寄存器(IFR、IER、DBGIER)状态寄存器:ST0、ST1。可以和数据寄存器交换数据,也可以保存机器的状态和为子程序恢复状态。5)简述OVC/OVCU的工作过程以及OVM对ACC操作的影响。OVC/OVCU的工作工程:①对有符号数的操作,OVC是一个有符号的6位循环溢出计数器:当溢出模式关闭,ACC正常溢出时,OVC反映溢出信息:ACC正向溢出,OVC加1;ACC负向溢出,OVC减1。当溢出模式开启,ACC产生溢出时,OVC不受影响,但进行以下处理:ACC正向溢出,ACC=7FFFFFFFH;ACC负向溢出,ACC=80000000H。②对无符号数操作,OVC是一个有符号的6位循环进位计数器:当ADD操作产生一个进位时,计数器加1;当SUB操作产生一个借位时,计数器减1。OVM对ACC操作的影响:当ACC进行加减运算而结果产生溢出时,OVM=0或1决定CPU如何处理溢出:OVM=0(溢出模式关闭),ACC中产生的溢出反映到OVC;OVM=1(溢出模式开启),ACC正向溢出(7FFFFFFFH—80000000H),则ACC填充7FFFFFFFH,ACC负向溢出(80000000H—7FFFFFFFH),则ACC填充80000000H。6)简述ITNM、N、V、VMAP等状态标志位对处理器的影响。INTM:中断全局屏蔽位。INTM可以全局使能和禁止所有的CPU可屏蔽中断,当INTM=0时,可屏蔽中断被全局使能,当INTM=1时,可屏蔽中断被全局禁止;N:负标志位。在某些操作中,若操作结果为负则N被置位;若操作结果为正则N被清0。测试ACC内容的正负,实际是测试ACC的符号位(D31),若D31=1,则ACC是负数,N=1;若D31=0,则ACC是正数,N=0。测试AH、AL和其他的16位寄存器或数据存储器的内容的正负也是测试符号位(D15);V:溢出标志。如果操作引起保存结果的寄存器产生溢出,则V置1;如果没有溢出,V不改变。一旦V被锁定,它就保持置位直到复位或者被测试V的条件分支指令来清除(不管测试条件如何);VMAP:向量映像位。VMAP决定CPU的中断向量映射到程序存储器的低端还是高端,当VMAP=0,CPU的中断向量映射到程序存储器的底部;当VMAP=1,CPU的中断向量映射到程序存储器的高端。8)简述中断的概念、可屏蔽中断的初始化及其中断处理流程。中断的概念:硬件或者软件使得CPU停止执行当前的程序,转而执行另外的子程序;可屏蔽中断的初始化:状态寄存器ST1中的可屏蔽中断全局使能位INTM清零,中断标志寄存器IFR相应位置1,可屏蔽中断局部使能寄存器IER相应位置1;中断处理流程:向CPU发出中断请求——置IFR寄存器相应位为1——判断寄存器IER相应位是否为1(假定为1)——判断INTM全局使能位是否为0(假定为0开中断)——清零IFR寄存器相应位——清空流水线——保存返回地址——取中断向量——中断现场保护——清零寄存器IER相应位——置INTM和DBGM为1,将LOOP、EALLOW和IDLESTAT等位清零——将中断向量装载PC——执行中断服务子程序——返回。10)TMS320C28x的指令流水线几个阶段,各完成什么操作?为了提高效率,CPU采用8级流水线来完成一条指令的执行:取指1(F1):CPU将程序存储器地址送给程序地址总线;取指2(F2):CPU通过程序读数据总线对程序存储器进行读操作,并把指令放入指令队列中;译码1(D1):识别取指队列里指令的边界,测定下一条执行指令的长度,同时确定指令的合法性;译码2(D2):从指令队列取回指令并将其放入指令寄存器,在那里完成译码;读1(R1):如果从存储器读数,R1阶段将会把地址送到相应的地址总线上;读2(R2):如果数据的地址在R1阶段被寻址,则R2阶段就通过相应的数据总线取回数据;执行(E):CPU执行所有的乘法、移位和ALU操作;写(W):如果将结果写回存储器,则该操作在写阶段(W)发生。11)TMS320C28x的指令流水线保护哪几种冲突?如何保护的?①向同一数据空间进行读写发生冲突:CPU增加自动无效周期来确保这些读写按预定的方式进行;在程序中,如果可以采用其它的指令或者在发生冲突的指令之间插入其它指令,就可以减少或取消这种流水线保护周期②寄存器冲突:流水线保护机制通过在D2阶段将后一条指令保持所需要的周期(1~3个)来解决寄存器冲突14)简述直接寻找方式,并举例说明。DP(数据页指针):在这种寻址方式中,16位的DP寄存器作为固定的页指针,在指令中提供6位或7位的偏移量,这些偏移量与中的值相连接。这种寻址方式对固定寻址的数据结构,如外围寄存器和C/C++中的全局或静态变量来说,都是一种有效的方法。例如:MOVWDP,#VarA;用VarA所在的页值装载DP指针ADDAL,@VarA;将VarA存储单元内容加至ALMOV@VarB,AL;将AL内容存入VarB存储单元,VarB与VarA应在同一个64字的数据页内MOVWDP,#VarC;用VarC所在的页值装载DP指针SUBAL,@VarC;从AL中减去VarC存储单元内容MOV@VarD,AL;将AL内容存入VarD存储单元,VarC与VarD应在同一个64字的数据页内,而VarC、VarD与VarA、VarB在不同的数据页内(AMODE=0时的“loc16/loc32”语法下的实例)16)简述循环间接寻址方式(AMODE=0和1),并举例说明。例如:;计算有限脉冲响应滤波器(X[N]为数据阵列,C[N]为系数阵列)MOVWDP,#Xpointer;将Xpointer的页地址装入DPMOVLXAR6,@Xpointer;将当前的Xpointer值装入XAR6MOVLXAR7,#C;将C阵列的起始地址装入XAR7MOV@AR1,#N;将N阵列的大小装入AR1SPM-4;设置乘积移位模式为右移4位ZAPA;ACC=0,P=0,OVC=0RPT#N-1;下一条指令重复执行N次‖QMACLP,*AR6%++,*XAR7++;ACC=ACC+P4.;P=(*AR6%++**XAR7++)32ADDLACC,PPM;最后累加MOVL@Xpointer,XAR6;将XAR6存入当前XpointerMOVL@Sum,ACC;将结果存入sum(循环间接寻址方式下“loc16/loc32”*AR6%++语法下的实例)13)简述HOLD和HOLDA,XRD、XWE、XRNW的作用。HOLD:外部总线保持请求信号,它为低电平时要求XINTF释放外部总线;HOLDA:外部总线请求应答信号,当XINTF释放外部总线后,将HOLDA置低,表示外部设备可以使用外部总线;XRD:XINTF的读使能信号,低电平时有效;XWE:XINTF的写使能信号,低电平时有效;(注:XRD和XWE不能同时有效)XRNW:低电平表示写周期正在进行;高电平表示读周期正在进行;正常表示高电平。15)简述C2xLP反进位寻址方式,并举例说明。例如:MOVZDP,#RegAPtr;将包含RegAPtr的页地址装入DPMOVZAR2,@RegAPtr;将RegAPtr所包含的内容装入AR2,AR2H=0MOVZAR3,@RegBPtr;将RegBPtr所包含的内容装入AR3,AR3H=0;RegAPtr和RegBPtr处于同一个128字数据页内,两者都处于低64K数据存储器空间NOP*,ARP2;将ARP指针指向XAR2MOV*,#0x0404;将0404H送入XAR2所指定的存储单元NOP*,ARP3;将ARP指针指向XAR3MOV*,#0x8000;将8000H送入XAR3所指定的存储单元(C2xLP间接寻址方式下“loc16/loc32”*语法下的实例)简述AMODE=0时反进位寻址方式,并举例说明。答:反进位寻址方式就是将XAR0的低十六位使用反向进位加法加到选定的寄存器的低十六位或者使用反向借位减法被从选定寄存器的低十六位减去。它可表示为32bitDataAddr(31:0)=XAR(ARP)XAR(ARP)(15:0)=AR(ARP)rcaddAR0XAR(ARP)(31:16)=unchanged举例:NOP*,ARP3MOVL*BRP0--,ACCNOP*,ARP117)如何编写TMS320C28x应用程序的CMD文件答:CMD文件是一种ASCII文件,它包含下述几个部分:输入文件;连接选项;存储区管理、段管理等。输入文件用来指定Obj目标文件、库文件或其它CMD文件;通常的连接选项包括:定义程序入口、创建MAP文件、输出模块命名及定义堆栈项等;存储区管理项用来指定输出的段将被放置哪些存储区空间内,每一个存储项包括起始地址、长度以及名字等。如MEMORY{[PAGE0:]name1[(attr)]:origin=const,length=const;[PAGEn:]namen[(attr)]:or