DSP复习要点第一章绪论1、数的定标:Qn表示。
例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、‟C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。
第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。
(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。
(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。
1)、累加器A和B分为三部分:保护位、高位字、地位字。
保护位保存多余高位,防止溢出。
2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。
5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。
答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。
•ST0主要反映处理器的寻址要求和计算机的运行状态。
ST1主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。
PMST主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。
ST0的ARP用于指示当前使用的辅助寄存器,TC为测试/控制的状态位,C表示加减法的进借位,OV A、OVB为累加器的溢出状态,DP表示当前使用的数据页。
•ST1的BRAF为块重复标志,CPL表示编译方式,HM表示挂起方式,INTM用于中断屏蔽控制,OVM为溢出方式设置,SXM 用于设置符号扩展,C16用于设置双16位或者双精度方式,FRCT用于设置小数计算,CMPT为兼容模式位,ASM用于设定移位数。
•PMST的IPTR用于配置中断向量指针,MP/MC、OVLY、DROM用于配置片内存储器的使用,A VIS用于配置地址是否可见,CLKOFF用于关断时钟输出,SMUL、SST分别用于乘法、存储的饱和处理设置。
4、C54x DSP存储器可采用软件配置吗?如何配置?答:’C54X通过在处理器工作方式状态寄存器(PMST)中的三个状态位来设置片内存储器。
MP/MC=0:片内ROM安排到程序空间;MP/MC=1:片内ROM不安排到程序空间;OVLY=0:片内RAM只安排到数据空间;OVLY=1:片内RAM安排到数据空间和程序空间;PROM=0:片内不安排到数据空间;PROM=1:片内安排到数据空间;5、C54x数据存储器前1K如何划分?答:1)存储器映象CPU寄存器(0000h~001Fh,共26个单元) 2)外围电路寄存器(0020h~005FH) 3)32字暂存器DARAM(0060h~007Fh) 4)896字DARAM(0080h~03FFh)。
6、C54x程序存储器ROM的保留部分的内容是什么?答:(1)自举加载程序。
从串行口、外部存储器、I/O口、或者主机接口(如果有的话)自举加载。
(2)256字U律压扩表。
(3)256字A律压扩表。
(4)256字正弦函数值查找表。
(5)中断向量表。
7、C54x DSP的IO空间有何特点?答:(1)它是一个64K字的地址空间(0000h—FFFFh),都在片外。
(2)可以用两条指令(PORTR和PORTW)对I/O空间寻址。
(3)用于与外部设备连接;(4)读写信号均为对通过外部总线实现。
二、重点:1、C54x的三个独立存储器空间:(1)、64K字的程序存储空间(2)、64K字的数据空间(3)、64K字的I/O空间,片内存储器的有DARAM、SARAM和ROM三种类型第三章指令系统一、思考题:1、C54指令有哪些数据类型?答:16位数的单精度和32位数的双精度、长字指令2、C54指令有哪些数据寻址方式?答:‘C54x提供了七种基本的数据寻址方式:(1)、立即数寻址——指令中嵌有一个固定的数。
(2)、绝对地址寻址——指令中有一个固定的地址。
(3)、累加器寻址——按累加器内的地址去访问程序存储器中的一个单元。
(4)、直接寻址——指令中的7bits是—个数据页内的偏移地址,而所在的数据页由数据页指针DP或SP决定。
该偏移加上DP和SP的值决定了在数据存储器中的实际地址。
(5)、间接寻址——按照辅助寄存器中的地址访问存储器。
(6)、存储器映射寄存器寻址——修改存储器映射寄存器中的值,而不影响当前DP或SP的值。
(7)、堆栈寻址——把数据压入和弹出系统堆栈。
3、直接寻址的数据地址是如何形成的?答:(1)、CPL=0时状态寄存器ST0的9位数据页指针(DP)和指令中的操作数的低七位偏移地址合成16位有效地址(2)、CPL=1时状态寄存器ST0的16位堆栈指针(SP)和指令中的操作数的低七位偏移地址合成16位有效地址4、什么是循环寻址?如何实现?(算法可以不用记)答:使所寻址的数据存储器地址在指定的范围内循环的寻址方式成为循环寻址。
循环缓冲器的有效基址是用户选定的辅助寄存器ARX的低N位置0后所得的值,其尾地址是通过BK的低N位代替ARX的低N位得到的。
循环寻址的算法实际上是以BK的值为模进行的取模运算。
5、什么是位倒序寻址?如何实现?答:AR0存放的整数N是FFT点数的一半,—个辅助寄存器指向一数据存放的物理单元。
当使用位倒序寻址把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是从右向左。
6、什么是循环缓冲器?如何实现?答:循环缓冲器是一个包含了最近的数据的滑动窗口,当新的数据来到时,缓冲器就会覆盖最早的数据。
循环缓冲器实现的关键是循环寻址的实现。
循环缓冲器大小寄存器(BK)确定了循环缓冲器的大小。
大小为R的循环缓冲器必须从一个N-bit边界开始(也就是说,循环缓冲器基地址的最低N位必须为0 ),N是满足2N>R的最小整数。
R 的值必须装入BK。
循环缓冲器的有效基地址(EFB)就是用户选定的辅助寄存器(ARx)的低N位置0后所得到的值。
循环缓冲器的尾地址(EOB)是通过用BK的低N位代替ARx的低N位得到。
1)对于N阶的FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,滑窗中存放最新的N个输入样本。
2)每次输入新的样本时,以新样本改写滑窗中的最老的样本数据,而滑窗中的其他数据不需要移动。
3)利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址。
二、重点:1、C54X的汇编指令由操作符和操作数两部分组成。
基本形式为2、LD # 80h,A 如果漏掉了…#‟号,指令:LD 80h,A3、双操作数寻址方式:只能选择4个辅助寄存器:AR2~AR5。
4、四条使用堆栈寻址方式访问堆栈的指令:PSHD:把一个数据存储器的值压入堆栈。
PSHM:把一个存储器映射寄存器的值压入堆栈。
POPD:把一个数据存储器的值弹出堆栈。
POPM:把一个存储器映射寄存器的值弹出堆栈。
整数小数乘法程序、MAC、MACR指令、例27★第四章汇编语言的程序设计一、思考题:1、汇编、链接时哪些选项是必须的?答:源文件名%1是必须的,链接时目标文件是必须的。
2、.lst,.cmd,.map,.out,.obj各为什么文件?有何作用?答:1).lst:输出列表文件,用于调试2).cmd:链接器命令文件,用于控制链接器连接和程序重定位3).map:存储器映像文件,用于调试4).out:输出可执行文件,用于运行5).obj:目标文件,对其链接生成.map和.out文件3、子程序如何调用?答:采用CALL:无条件调用;CALA根据累加器规定地址调用子程序;CC:有条件调用。
二、重点:1、汇编语言源程序是以“.asm”为其扩展名的程序,每一行都可以由四个部分组成,用空格或TAB隔开。
句法如下:[标号] 助记符[操作数] [;注释](1)、标号:必须从第1列写起,最多可达32个字符(A~Z,a~z,0~9,_,以及$ ),但不能以数字开头,后面可以加或不加“:”。
标号的值就是SPC(段程序计数器)的值。
(2)、助记符:助记符指令、汇编指令、宏指令和宏调用;一般用大写;汇编指令、宏指令以(.)开始,且为小写。
(3)、操作数——指令中的操作数或汇编命令中定义的内容。
操作数之间必须用逗号“,”隔开。
有的指令无操作数,如:NOP、RESET。
(4)、注释从“;”开始,可以放在指令或汇编命令的后面,也可以放在单独的一行或数行。
2、7种常数数据类型:二进制、八进制、十进制、十六进制、浮点数、字符、字符串符号仅在定义它的汇编程序有效,使用.global伪指令定义的符号为全局符号;3、伪指令:提供数据、控制汇编过程(1)段定义伪指令:己初始化段:.text .data和.sect命令用于建立已初始化段;未初始化段:.bss和.usect命令建立未初始化(2)、段程序计数器定位伪指令:.align [size in bits]该指令使段程序计数器SPC对准1~128字的边界;不同操作数代表不同的含义:“1”——SPC对准字边界“2”——SPC对准长字或偶地址边界“128”——SPC对准页边界(缺省值)4、宏命令:其使用过程包括三个部分:宏定义、调用、宏展开5、DSP的软件开发方式(3种):直接编写汇编语言源程序;编写C语言程序;混合编程(既有C代码又含汇编代码)6、程序:程序一般由数据段、代码段、堆栈段组成;程序的四种基本结构:顺序结构、分支结构、循环结构、子程序结构7、常用汇编命令选项:(1)、%1:用源文件名代入。
(2)、-s:将所有定义的符号放在目标文件的符号表中。
(3)、-1:产生一个列表文件。
(4)、-x:产生一个交叉汇编表,并把它附加到列表文件的最后。
8、最常用的连接命令选项为-m和-o。
(1)、-m filename:生成一个filename.map映像文件。