首页 DSP复习资料

DSP复习资料

举报
开通vip

DSP复习资料DSP复习资料 第一章 1、DSP,DSP的两层含义 : DSP(Digital Signal Processing)----数字信号处理的理论和方法。 DSP(Digital Signal Processor)----用于数字信号处理的可编程微处理器。 2、CPU、MCU、DSP区别与联系: CPU:微型计算机中央处理器。(如:奔腾等) MCU:单片微型计算机(如MCS-51,MCS-96等)DSP:可编程的数字信号处理器。 3、掌握冯偌伊曼结构、哈佛结构以及改进的哈佛结构的区别及联系, DSP处...

DSP复习资料
DSP 复习 预应力混凝土预制梁农业生态学考研国际私法笔记专题二标点符号数据的收集与整理 资料 第一章 1、DSP,DSP的两层含义 : DSP(Digital Signal Processing)----数字信号处理的理论和方法。 DSP(Digital Signal Processor)----用于数字信号处理的可编程微处理器。 2、CPU、MCU、DSP区别与联系: CPU:微型计算机中央处理器。(如:奔腾等) MCU:单片微型计算机(如MCS-51,MCS-96等)DSP:可编程的数字信号处理器。 3、掌握冯偌伊曼结构、哈佛结构以及改进的哈佛结构的区别及联系, DSP处理器则毫无例外地将程序代码和数据的存储空间分开,各有自己的地址总线与数据总线,这就是所谓的哈弗结构(同时取指令和取操作数,并行的进行指令和数据的处理,大大提高了运算速度)。改进的哈弗结构,在哈弗结构基础上。又加以改进,使得程序代码和数据存储空间之间也可以进行数据的传送。 冯?诺依曼体系结构模型: 改进的哈弗结构: 4、简述数字信号处理与模拟信号处理相比的优越性,(DSP系统的特点):DSP系统的特点(与模拟信号处理系统相比):1)、精度高,抗干扰能力强,稳定性好。2)、编程方便,易于实现复杂算法(含自适应算法)。3)、可程控。4)、接口简单。5)、集成方便。 5、DSP芯片的结构特点, 1 1)、改进的哈弗结构 2)、多总线结构 3)、流水线技术 4)、多处理单元 5)、特殊的DSP指令 6)、指令周期短 7)、运算精度高 8)、丰富的外设 9)、功耗低 6、DSP芯片的分类, DSP芯片的分类 (1) 按用途分类 1)、通用型DSP芯片(本课程主要讨论的芯片) 2)、 专用型DSP芯片 (2)、按数据格式分 1)、定点 DSP 2)、浮点 DSP 7、了解做DSP方面公司: DSP主要厂商:美国TI、ADI、Motorola、Zilog等公司。TI公司位居榜首, 占全球DSP市场约60,左右。 TI、Lucent、AD、Motorola、ZSPh和NEC公司。 8、DSP应用系统的开发工具, 常用的软硬件开发工具:Simulator软件仿真器、Emulator在线仿真器和C编译器等。如TI公司的CCS集成开发环境、XDSP实时软件技术等,为用户快速开发实时高效的应用系统可提供巨大帮助。 9、请说出衡量DSP芯片运算速度的性能指标,(至少3种) ? 指令周期 ? MAC时间 ? FFT执行时间 ? MIPS:即每秒执行百万条指令 ?MOPS:即每秒执行百万次操作 ?MFLOPS:即每秒执行百万次浮点操作 ? BOPS:即每秒执行十亿次操作 第二章 10、DSP硬件结构特点, c54x的内部结构,(第一问还须细化) 三大块:CPU 、存储器系统 、片内外设与专用硬件电路 DSP的硬件结构,大体上与通用的微处理器相类似,由CPU、存储器、总线、外设、接口、时钟等部分组成,但又有其鲜明的特点。 11、 c54xCPU部分的结构特点, (1)、先进的多总线结构【1条程序总线、3条数据总线和4条地址总线】。(2)、40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和两个独立的40位累加器。(3)、 位并行乘法器,与40位专用加法器相连,用于非流水线式单周期乘法/累加运算17,17 【MAC】。(4)、比较、选择、存储单元【CSSU】,用于加法/比较选择。(5)、指数编码器,可以在单个周期内计算40位累加器中数值的指数。(6)、双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元【ARAU】。 12、掌握c54x总线特点,由几种类型的总线组成,每种类型的总线的数量和名称。 C54x DSP片内由8条16位的总线,即4条程序/数据总线和4条地址总线。1)、一组程序总线PB:传送从程序存储器来的指令代码和立即数;2)、三组数据总线(CB、DB、EB):传送从数据存储器读出的操作数;( EB):传送写入到数据存储器中的数据; 3)、四组地址总线(PAB、CAB、DAB、EAB):传送执行指令所需的地址; 13、 C54X DSP具有2个40位的累加器,累加器构成,累加器A和B的差别, 累加器:功能:存放参加运算的数据或存放运算的结果(ALU或MAC) 。组成:三个部分(保护位作用:数据位余量,防止溢出,迭代运算) 累加器A: 39,32 31,16 15,0 AG(保护位) AH(高阶位) AL(低阶位) 累加器B: 39,32 31,16 15,0 BG(保护位) BH(高阶位) BL(低阶位) 2 累加器A和B的差别仅在于累加器A的31,16位可以作为乘法器的一个输入。 14、C54x 内部乘法器单元的输入端的数据来源, (1)、组成:17×17bit乘法器、40bit加法器、符号控制、小数控制、零检测器、舍入器、溢出/饱和逻辑、暂存器;(2)、功能:一个单指令周期内完成17×17bit的二进制补码运算;(3)、用途:卷积、相关、滤波(LMS)、欧氏距离等运算; 15、C54x的算术逻辑单元ALU单元的输入端的数据来源, 16、桶形移位器的操作,移位位数, 1)、操作:(1)、在ALU运算前,对来自数据存储器的操作数或者累加器的值进行预定标; 3 (2)、执行累加器的值的一个逻辑或算术运算;(3)、对累加器的值进行归一化处理;(4)、 对存储到数据存储器之前的累加器的值进行定标。 2)、移位数可以用以下方式定义: (1)、用一个立即数(-16,15)表示。(2)、用状态寄存器ST1的累加器移位方式(ASM)位表 示,共5位,移位数为-16,15。(3)、用T寄存器中最低6位的数值(移位数为-16,31)表示。 17、 CPU状态和控制寄存器,(1)掌握ST0中DP的位数和计算方法。 (2)掌握ST1中CPL位作用。 (3)掌握ST1中INTM位作用。 (4) 掌握PMST寄存器各状态位的功能,MP/MC、OVLY位,DROM位的作用 第二章:TMS320C54x的硬件结构 (1)状态寄存器(ST0) 功能:反映寻址要求和计算中的状态;功能: ST0的结构图: 含义:含义: ARP——辅助寄存器指针 TC——测试/控制标志位 C——进位位。 OVA /OVB ——累加器A/B的溢出标志位 DP——数据存储器页指针 第二章:TMS320C54x的硬件结构 (2)状态寄存器(ST1) 功能:反映寻址要求、计算初始状态、I/O终端控制功能: BRAF ——块重复操作标志位。CPL ——直接寻址编辑方式位含义:含义: XF ——XF引脚状态位。HM ——保持方式位 INTM ——中断方式位。OVM ——溢出方式位 SXM ——符号位扩展方式位。C16 ——双16位/双精度算术运算方式位 FRCT ——小数方式位。CMPT——修正方式位 ASM ——累加器移位方式位 第二章:TMS320C54x的硬件结构 (3)工作方式寄存器(PMST—Processor Mode Status)功能:设定并控制处理器的工作方式,反映处理器工作状态;15,7 6 5 4 3 2 1 0 ???MP/MC CLKOFF SMUL SST IPTR OVLY AVIS DROM ? 这些位置在C54x DSP的A版本或更新版本才有,或者在C548或更高的系列器件才有。 含义:MP/MCIPTR——中断向量指针。 ——微处理器/微型计算机工作方式位 OVLY ——RAM重复占位位。 AVIS ——地址可见位 4 18、掌握c54x 存储空间的分配,一共多少千字,有那几部分组成, C54x的总存储空间为192K字 存储器的组成(分为3个可选择的存储空间): 程序存储空间ROM 64K 16位:存放程序(要执行的指令) , , 单访问SARAM,,,数据存储空间RAM64K16位保存执行指令所使用的数据(,,, 双访问DARAM,,, ,I/O存储空间64K16位:提供与外部存储器映射的接口, 19、TMS320C5402能够寻址的程序存储器容量, C5402为20位的地址总线 20、 c54x中断的分类,中断处理步骤, C54x DSP的中断可以分成两大类: (1)、非屏蔽中断:不能由用户用软件来屏蔽的中断。 (2)、可屏蔽中断:用户根据需要可用软件开放或禁止CPU响应中断。 中断处理一般过程: (1)、中断源请求中断;中断标志寄存器(IFR) (2)、CPU响应中断;预定义条件的满足 (3)、保护现场; (4)、转中断服务; (5)、恢复现场; (6)、中断返回; 21(C54x有多少个可屏蔽中断,其中外部可屏蔽中断有几个, C5402只使用14个可屏蔽中断。其中外部可屏蔽中断有10个。 22、 c54x的中断标志寄存器IFR和中断屏蔽寄存器, 第二章:TMS320C54x的硬件结构 2.5.2 中断标志寄存器(IFR)和中断屏蔽寄存器(IMR)1.中断标志寄存器(IFR) 当一个中断出现的时候,IFR中相应的中断标志位置1,直到 中断得到处理为止。 (1)共14个有效标志位(可屏蔽中断): 外部中断4个(INT0--INT3) 定时器中断2个(TINT0--TINT1) 串口定时器4个(两发/两收) DMA中断3个(DMAC0. 4. 5) HPI中断1个; 5 第二章:TMS320C54x的硬件结构 2.中断屏蔽寄存器(IMR) 是一个存储器映像的CPU寄存器,主要用来屏蔽外部和内部中断说明(1)共14个有效位(与IFR对应)说明(1) (2)当IMRi=0 屏蔽该中断; IMRi=1 不屏蔽该中断 23、CPU应答中断和执行中断服务程序的过程, 应答中断 硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答中断请求。 • 软件中断和非屏蔽硬件中断会立刻被应答; • 屏蔽中断仅仅在如下条件被满足后才被应答。 (1) 优先级别最高(当同时出现一个以上中断时)。 (2) 状态寄存器 ST1中的INTM位为0。 (3) 中断屏蔽寄存器IMR中的相应位为1。 CPU响应中断时,让PC转到适当的地址取出中断向量,并发出中断响应信号,清除相 应的中断标志位。 执行中断服务程序(ISR) (1) 将PC值(返回地址)存到数据存储器堆栈的栈顶; (2) 将中断向量的地址加载到PC; (3) 在中断向量地址上取指; (4) 执行分支转移指令,转至中断服务程序(如果延迟分支转移,则在转移前先执行附加的 指令); (5) 执行中断服务程序; (6) 中断返回,从堆栈弹出返回地址加到PC中; (7) 继续执行被中断了的程序。 24、中断向量地址的产生, 中断向量(地址) ? 组成:IPTR + 中断向量序号 <<2 (9位) (5位)?(7位) 注:• 中断向量地址指针IPTR位于PMST (CPU方式控制R) 的高9位(D15~D7),可用程 序设置; • 中断向量序号由相应的中断源(硬件或软件)提供 第三章: 第三章 一、掌握七种寻址方式 1、立即数寻址(1)短立即数寻址:(单字指令)在指令字中包括立即操作数 6 RPT #99 ;将下一条指令循环100次 LD #0h,DP ;将0装入数据页指针 ADD #0ffh,A ;将0ffh加给AccA (2)长立即数寻址:指令字的后一个字是立即数(双字指令) ADD #1234h,A ;将#1234h加给AccA 2、 绝对地址寻址:(1)数据存储器地址(dmad)寻址:用一个符号或一个数来 确定数据空间中的一个地址 例:MVKD sample,*AR5 sample所代表的就是一个dmad (2)程序存储器地址(pmad)寻址:用一个符号或一个数来确定程序地址空间中的一个地址 例:MVKD table,*AR5 table 所代表的就是一个pmad (3)端口地址(PA)寻址:用一个符号或常数来确定I/O口地址 PORTR PA, Smem PORTW Smem, PA (4) *(lk)寻址: 用一个符号或一个常数来确定数据存储器中的一个地址 例:LD *(BUFFER),A 把地址为BUFFER的数据单元中的数据装到AccA中 3、累加器寻址:用累加器中的数作为一个地址,可用来对存放数据的程序存储器寻址: READA Smem WRITA Smem READA,把累加器A所确定的程序存储器单元中的一个字,传送到数据存储器单元Smem中 WRITA,把数据单元Smem中的一个字,传送到累加器A确定的程序存储器单元。 4、存储器映射寄存器(MMR)寻址:存储器映射寄存器寻址用来修改存储器映射寄存器而不影响当前数据页指针(DP)或堆栈指针(SP)的值。存储器映射寄存器寻址既可以在直接寻址中使用,又可以在间接寻址中使用。 5、堆栈寻址:系统堆栈用来在中断和子程序期间自动存放程序计数器。它也能用来存放额外的数据项或传递数据值。处理器使用一个16-bit的存储器映射寄存器—堆栈指针来对堆栈寻址,它总是指向存放在堆栈中的最后一个元素。 6、直接寻址:TMS320C54的数据存储器分为512页,每页128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一个7-bit的页内偏移地址,形成16-bit的数据地址 LD #4,DP ;指向页4(0200h-027Fh) ADD 9h,A ;将数据页4中地址9h的数据加给AccA 7、间接寻址:8个辅助寄存器(AR0--AR7),由一个辅助寄存器指针(ARP 3-bit)来指定 辅助寄存器算术单元(ARAU)作16-bit无符号数运算,决定一个新的地址,装入辅助寄存器中的一个。AR0--AR7的内容相当灵活,可以装入立即数,加上立即数,减去立即数;也可以从数据存储器装入地址; , 将该AR的内容加1或减1,再寻址(循环常用) 7 , 将该AR的内容加上或减去AR0的内容,再寻址。 , 将该AR的内容逆向进位加上或减去AR0的内容,再寻址。 , ADD *,8,A ;将当前辅助寄存器所指的地址里的数据,左移8-bit后加给AccA , ADD *+,8,A,AR4 ;数据左移,加给AccA后,当前辅助寄存器加1,选择 辅助寄存器AR4 , ADD *0+,8,A ;执行加法后,将AR0的值加给当前辅助寄存器 , ADD *BR0+,8,A ;执行加法后,将AR0的值加给当前辅助寄存器,但反向进位 8、位倒序寻址:AR0 = 100 AR1 = 000 按AR1寻址后,将AR0加给AR1,反向进位 @ ,#,* 表示寻址方式 二、理解直接寻址中16位地址的构成方法, 15位到8位——操作码 第7位——确定寻址方式 6到0位——数据存储器的地址(数据存储器的偏移地址) 三、理解间接寻址的不同,(1)单操作数间接寻址 (2)双操作数间接寻址 四、理解+,- ,%,0,(lk),B的区别 +是加的意思。-是减的意思。%是循环寻址的意思。0是零。(lk)是一恶搞16位树或一个符号。B代表位倒序寻址。 ,、下面哪条指令是端口寻址指令, (A)LD #0,A (B)MVKD EXAM1,*AR5 (C)PORTR FIFO,*AR5 (D)READA 60H 2、 下面哪个间接寻址单操作数表示循环寻址, (A)*AR2-0B (B)*AR2-0% (C)*AR2(5) (D)*+AR2(5) 3、请解释下列指令的功能并比较异同。 (1)LD #60H,A (2)LD 60H,A (3)LD *(60H),A 4、指令解释。 (1)READ A Smem Smem = (A) 把由ACCA寻址的程序存储单元的值读到数据单元中 (2)WRIT A Smem (A) = Seem 把数据单元中的值写到由ACCA寻址的程序存储单元 5、程序中给出如下两条指令,请问实际寻址的数据存储器的16位地址是多少, LD #5,DP LD 60H,A 6、 MAC *AR5+,A ;A+(AR5)*T?A, AR5= AR5+1 A = A + T*(AR5); AR5 = AR5 + 1; 第四章: 1. 编辑 利用各种文本编辑器,如笔记本、WORD、EDIT和TC等,可编写汇编语言源程序。 2. 汇编 当汇编语言源程序编写好以后,可利用’C54x的汇编器ASM500,对一个或多个源程序分别进行汇编,并生成列表文件(.lst)和目标文件(.obj)。 3. 链接 所谓链接,就是利用’C54x的链接器LNK500,根据链接器命令文件(.cmd)对已汇编过的一个或多个目标文件(.obj)进行链接,生成输出文件(.out)和存储器映像文件(.map) 。 8 汇编器和链接器生成的目标文件,是一个可以由’C54x器件执行的文件。这些目标文件的?.bss?.bss——定义未初始化段——定义未初始化段.text[段起点].text[段起点]格式称之为公共目标文件格式(COFF)。 ?.usect——定义未初始化段?.usect——定义未初始化段在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程.data[段起点].data[段起点]——定义已初始化段——定义已初始化段?.text?.text和管理变得更加方便。 ——定义已初始化段——定义已初始化段这些代码段和数据段简称为段。汇编器和链接器提供一些伪指令来建立和管理各种各样的段 ?.data?.data.sect“段名”[,段起点].sect“段名”[,段起点]COFF文件有3种类型:COFF0、COFF1、COFF2。 ——定义已初始化段——定义已初始化段?.sect?.sect 每种类型的COFF文件,其标题格式都有所不同,但数据部分是相同的。 ’C54x汇编器和C编译器产生的是COFF2文件。 链接器能够读/写所有类型的COFF文件,默认时链接器生成的是COFF2文件,采用-vn链接选项可以选择不同类型的COFF文件。 1. 段(sections) 是COFF文件中最重要的概念。每个目标文件都分成若干段。 段——是存储器中占据相邻空间的代码或数据块。一个目标文件中的每个段都是分开的和各不相同的。 COFF目标文件都包含以下3种形式的段: .text 段(文本段),通常包含可执行代码; .data 段(数据段),通常包含初始化数据; .bss 段(保留空间段),通常为未初始化变量保留存储空间。 COFF目标文件中的段有两种基本类型。 (1) 初始化段 初始化段中包含有数据或程序代码。主要有: .text段——已初始化段;.data段——已初始化段;.sect段——已初始化段,由汇编器伪指令建立的自定义段。 (2) 未初始化段 在存储空间中,为未初始化数据保留存储空间。 它包括:bss段——未初始化段; .usect段——未初始化段,由汇编命令建立的命名段(自定义段)。 3. 段与目标存储器的对应关系 : 汇编器的任务:在汇编过程中,根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。链接器的任务:就是分配存储单元,将目标文件中的段重新定位到目标系统的存储器中,这一过程称为定位或分配。 汇编器对段的处理是通过段伪指令来区别各个段的,并将段名相同的语句汇编在一起。 汇编器有5条伪指令可识别汇编语言程序的各个部分: 1. 未初始化段 未初始化段就是在’C54x存储器中保留空间,通常它们被定位在RAM区。在目标文件中,这些段中没有确切的内容。由这些段定义的空间仅作为临时存储空间,在程序运行时,可以利用这些存储空间存放变量。未初始化段分为默认的和命名的两种,分别由汇编器伪指令.bss和.usect产生。 (1) .bss伪指令用于在bss段中保留若干个空间。(2) .usect伪指令用于为指定的命名段保留若干个空间。 2. 已初始化段 已初始化段中包含有可执行代码或初始化数据。这些段中的内容都在目标文件中,当加载程序时再放到’C54x的存储器中。每个已初始化段都是可以重新定位的,并且可以引用其他段中所定义的符号。链接器在链接时会自动地处理段间的相互引用。已初始化段由.text、.data和.sect三个伪指令建立。已初始化命令的句法: 9 3. 命名段(自定义段) 命名段由用户指定,与默认的.text,.data和.bss段的使用相同,但它们被分开汇编。假如一部分可执行代码(例如初始化程序)不希望和.text段分配在一起,可将它们汇编进一个命名段,这样就可定位在与.text不同的地方。也可将初始化的数据汇编到与.data段不同的地方,或者将未初始化的变量保留在与.bss段不同的位置。 可用.usect和.sect两个伪指令产生命名段。.usect伪指令产生类似.bss的段,为变量在RAM中保留存储空间。.sect伪指令产生类似.text和.data的段,可以包含代码或数据。.sect伪指令产生可重新定位地址的命名段。 4. 子段 子段是较大段中的小段。链接器可以像处理其他段一样处理子段。子段结构可用来对存储器空间进行更紧凑的控制,可以使存储器空间分配更加紧密。用.sect命令建立的段是已初始化的子段用.usect命令建立的段是未初始化的子段。 5. 段程序计数器SPC 汇编器为每个段都安排了一个单独的程序计数器称之为段程序计数器SPC。 SPC表示在程序代码或数据段内当前的地址。开始时汇编器将每个SPC置0。当汇编器将程序代码或数据加到段内时,增加相应的SPC值。若再继续对某个段汇编,则相应的SPC就在先前的数值上继续增加。链接器在链接时要对每个段进行重新定位。 MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度 SECTIONS伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。 链接器是开发’C54x器件必不可少的开发工具之一,它对段处理时有2个主要任务: ? 将一个或多个COFF目标文件中的各种段作为链接器的输入段,经链接后在一个执行的COFF输出模块中建立各个输出段; ? 在程序装入时对其重新定位,为各个输出段选定存储器地址。 若未使用伪指令,则链接器将使用目标处理器默认的方法将段放入存储空间。 1. 默认的存储器分配 链接器可对多个目标文件进行链接。若链接文件中不使用MEMORY和SECTIONS命令,则为默认方式。 每个目标文件都有.text,.data、.bss段和命名段。若采用默认链接,链接器将对多个目标文件中的各个段进行组合,形成各自的对应段,并将各个段配置到所指定的存储器中,形成可执行的目标模块。 在默认的方式下,链接器将从存储器的0080h开始,对组合后的各段进行存储器配置。 默认的存储器分配: ? 将所有.text段组合在一起,形成一个.text段,并分配到程序存储器中; ? 将多个目标文件中的.data段组合在一起,分配到紧接着.text段的程序存储空间中; ? 将.bss段组合,配置到数据存储器中; ? 组合命名段。初始化的命名段按顺序分配到紧随.data段的程序存储器,而未初始化命名段将被配置到紧随.bss段的数据存储器中。 2、段放入存储器空间 3、 若不希望链接器将所有的.text段结合在一起形成单个的.text段,就不能采用默认的方式。 4、由于DSP硬件系统中可能配置多种类型的存储器,若要把某一段分配到特定类型的存储器中,或将命名段配置特定的地址,则需采用MEMORY和SECTIONS伪指令来配置。 5、 若不采用默认的方式,通常需要建立一个链接命令文件,在命令文件中用MEMORY和SECTIONS伪指令定义存储器和配置段地址。 汇编语言源程序经过汇编后,共建立了5个段: 10 ? .text段——文本段,段内有10个字可执行的程序代码。 ? .data段——已初始化的数据段,段内有7个字的数据。 ? vectors段——用.sect命令生成的命名段, 段内有2个字的初始化数据。 ? .bss段——未初始化的数据段,在存储器中为变量保留8个存储单元。 ? newvars段——用.usect命令建立的命名段, 为变量保留10个存储单元。 C54x汇编器支持宏指令语言。如果程序中有一段程序需要执行多次,就可以把这一段程序定义(宏定义)为一条宏指令,然后在需要重复执行这段程序的地方调用这条宏指令(宏调用)。利用宏指令,可以使源程序变得简短。 宏的使用分以下3个步骤: ? 定义宏 在调用宏时,必须首先定义宏; ? 调用宏 在定义宏之后,可在源程序中调用宏;? 扩展宏 在源程序调用宏指令时,汇编器将对宏指令进行扩展。 在调用宏之前,必须先定义宏。可以在源程序的任何位置定义宏,宏定义的所有内容必须包含在同一个文件中。宏定义可以嵌套,即在一条宏指令中调用其他的宏指令。在定义宏之后,可在源程序中使用宏名进行宏调用。 若源程序中调用宏指令,则汇编时就将对宏指令进行扩展。扩展时汇编器先将变量传递给宏参数,按宏定义取代调用宏语句,然后再对源代码进行汇编。当汇编器遇到宏定义时,将宏名称放进操作码表中,并将重新定义前面已经定义过的与之具有相同名称的宏、库成员、伪指令或指令助记符。用这种方法可以扩展指令和伪指令的功能以及加入新的指令。 宏定义和宏调用 :宏指令与子程序一样,都是重复执行某一段程序,但两者是有区别的,主要区别: ? 宏指令和子程序都可以被多次调用,但是把子程序汇编成目标代码的过程只进行一次,而在用到宏指令的每个地方都要对宏指令中的语句逐条地进行汇编。? 在调用前,由于子程序不使用参数,故子程序所需要的寄存器等都必须事先设置好;而对于宏指令来说,由于可以使用参数,调用时只要直接代入参数就行了。 第五章 1、堆栈的使用方法:当向堆栈中压入数据时,堆栈是从高地址向低地址方向填入,堆栈指针SP先减1,然后将数据压入堆栈。当从堆栈中弹出数据时。数据先从堆栈中弹出,然后堆栈指针SP加1 程序中要使用堆栈,必先进行设置: size .srt 120 Stack .usect "STACK", size STM #stack +size SP 设置好堆栈后,就可以使用堆栈了: CALL pmad;(SP)-1?SP,(PC)+2?TOS,pmad?PC RET ;(TOS)?PC,(SP)+1?SP 2、分支程序的判断条件: 条件操作程序: BC sub ,BLEQ;条件转移,若累加器B?0,则转至sub,否则往下执行 CC start,AGEQ,AOV;条件调用,若累加器A?0且溢出,则调用start,否则往下执行 RC NTC ;条件返回,若TC=0,则返回,否则往下执行。 注意:若需要多个条件相与时,用单条指令表示。 如:BC new, AGT, AOV 转移条件:AGT和AOV的与逻辑 若需要两个条件相或时,需用两条指令分别表示。 如:若累加器A大于0或溢出,则转移至sub 11 转移条件:AGT和AOV的或逻辑 BC sub, AGT BC sub, AOV 多重条件应注意以下几点:? 第1组:分为两类,最多可选择两个条件,组内两类条件可以与/或构成多重条件,但不能用组内同类条件构成与/或多重条件。当选择两个条件时,累加器必须是同一个。例如,可以同时选择AGT和AOV,但不能同时选择AGT和BOV。 ? 第2组:分为三类,最多可选三个条件,可以在每类中各选一个条件进行与/或构成多重条件,但不能在同类选两个以上条件。例如,可以同时测试TC、C和BIO,但不能同时测试NTC、C和NC。?组与组之间可用或构成多重条件。 3、实现重复的三种方法。 RPT —— 重复下条指令; RPTZ—— 累加器清0,并重复下条指令; RPTB—— 块重复指令。 4、三重循环嵌套的结构: 内层——RPT——执行N次 中层——RPTB——执行M次 外层——BANZ——执行L次 5、 数据传送程序, MVKD,MVPD,MVDM,MVDD 程序存储器至数据存储器之间的数据存储 第六章 17、定时器的组成 定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR及相应的逻辑控制电路组成。寄存器TIM、PRD和TCR是存储器映像寄存器,地址分别为0024H、0025H和0026H。 18、C54x定时器/计数器的应用 1.方波发生器 例如:用TMS320VC5402实现方波发生器。假设时钟频率为4MHz,在XF端输出占空比为50%的方波,方波的周期由片上定时器确定,采用中断方法实现。 (1)定时器初始化 关闭定时器,TCR中的TSS=1;加载PRD。设定定时中断周期,每中断一次,输出端电平取反一次;启动定时器,初始化TDDR,TSS=0,TRB=1。 (2)中断初始化 中断允许寄存器IFR中的定时中断位TINT=1,清除未处理完的定时中断;中断屏蔽寄存器IMR中的定时屏蔽位TINT=1,开放定时中断;状态控制寄存器ST1中的中断标志位INTM=0,开放全部中断。 (3)方波发生器程序清单 周期为8ms的方波发生器,定时中断周期为4ms,每中断一次,输出端电平取一次反。 ;abc1.asm ;定时器0寄存器地址 TIM0 (set 0024H PRD0 (set 0025H TCR0 (set 0026H ;K_TCR0:设置定时器控制寄存器的内容 K_TCR0_SOFT .set 0b ;Soft=0 K_TCR0_FREE .set 0b ;Free=0 12 K_TCR0_PSC .set 1001b ;PSC=9H K_TCR0_TRB .set 1b ;TRB=1 K_TCR0_TSS .set 0b ;TSS=0 K_TCR0_TDDR .set 1001b ;TDDR=9 K_TCR0 .set K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC| K_TCR0_TRB| K_TCR0_TSS| K_TCR0_TDDR ;初始化定时器0 ;根据定时长度计算公式:Tt=T* (TDDR+1) * (PRD+1) ;给定TDDR=9,PRD=1599,CLKOUT主频f=4MHz,T=250ns ;Tt=250*(9+1)*(1599+1)=4,000,000(ns)=4(ms) STM #1599,TIM0 STM #1599,PRD0 STM #K_TCR0,TCR0 ;启动定时器0中断 RET ;定时器0的中断服务子程序:通过引脚XF给出周期为8ms的占空比 ;为50%的方波波形 t0_flag .usect “vars”,1 ;当前XF输出电平标志位 ;若t0_flag=1,则XF=1 ;若t0_flag=0,则XF=0 time0_rev: PSHM TRN PSHM T PSHM ST0 PSHM ST1 BITF t0_flag,#1 BC xf_out,NTC SSBX XF ST #0,t0_flag B next xf_out: RSBX XF ST #1,t0_flag next: POPM ST1 POPM ST0 POPM T POPM TRN RETE 19、C54x的串行口 C54x的串行口有四种类型: 标准同步串口SP缓冲同步串口BSP时分复用串口TMD 多 路缓冲串口McBSP 标准同步串行口SP 1.SP串口结构 结构组成: 数据接收寄存器DRR; 数据发送寄存器DXR; 接收移位寄存器RSR; 13 发送移位寄存器XSR; 二个加载控制逻辑电路; 二个字节/字控制计数器。 20、标准同步串行口的外部引脚: 接收通道CLKR 接收时钟信号DR 接收串行数据信号FSR 接收帧同步信号 发送通道CLKX 发送时钟信号DX 发送串行数据信号FSX 发送帧同步信号 标准同步串行口各部分的功能: (1) 数据接收寄存器DRR 16位的存储器映像数据接收寄存器,用来保存来自RSR寄存器并将要写到数据总线的输入数据。复位时,DRR被清除。 (2) 数据发送寄存器DXR 16位的存储器映像数据发送寄存器,用来保存来自数据总线并将要加载到XSR的外部串行数据。复位时,DXR被清除。 (3) 数据接收移位寄存器RSR 16位的数据接收移位寄存器,用来保存来自串行数据接收(DR)引脚的输入数据,并控制数据到DRR的传输。 (4) 数据发送移位寄存器XSR 16位数据发送移位寄存器,用来控制来自DXR的外部数据的传输,并保存将要发送到串行数据发送引脚的数据。 (5) 串行接口控制寄存器SPC 16位的存储器映像串行接口控制寄存器,用来保存串行接口的模式控制和状态位。 (6) 控制电路 用于控制串行口协调工作,分为: 21、装载控制电路:完成接收和发送数据的装载; 位/字控制计数器:完成位/字传输控制。 例如:完成两个’C54x串行通信的连接。 发送过程: ? 发送数据装入DXR; ? 当上一个数据发送完后,DXR的数据自动装入XSR; ? 在发送帧同步信号FSX和发送时钟CLKX作用下,将XSR的数据通过引脚DX发送输出。 接收过程: ? 在接收帧同步信号FSR和接收时钟CLKR作用下,接收数据通过DR引脚移至RSR中; ? 当RSR满时,将数据装入DRR中。 串口初始化步骤: ? 复位,并且把0038H(或0008H)写到SPC,初始化串行接口。 ? 把00C0H写到IFR,清除任何挂起的串行接口中断。 (中断标志寄存器IFR ) ? 把00C0H和IMR求或逻辑运算,使能串行接口中断。 (中断屏蔽寄存器IMR) ? 清除ST1的INTM位,使能全局中断。 (状态寄存器ST1) ? 把00F8H(或00C8H)写入SPC,启动串行接口。 14 ? 把第一个数据写到DXR。 串口中断服务程序步骤: ? 保存上下文到堆栈中。 ? 读DRR或写DXR,或者同时进行两种操作。从DRR读出的数据写到存储器中预 定单元,写到DXR的数据从存储器的指定单元取出。 ? 恢复现场。 ? 用RETE从中断子程序返回,并重新使能中断。 22、C54x的主机接口(HPI)是一个8位并行口,用来实现与主设备或主处理器的通信。 主机与HPI的通信,可通过专用地址和数据寄存器、HPI控制寄存器以及使用外部数 据与接口控制信号来实现。HPI接口有两种工作方式: 共用寻址模式(SAM方式) 在这种方式下,主机和’C54x都能寻址HPI存储器。如果是异步工作的主机寻址,可 在HPI内部重新得到同步。当’C54x与主机的周期发生冲突时,则主机具有寻址优先 权,’C54x将等待一个周期。 主机寻址模式(HOM方式) 在HOM方式下,HPI存储器只能让主机寻址,而’C54x则处于复位状态或IDLE2空 转状态。主机可以访问HPI RAM,而’C54x则配置为最小功耗。 P193程序。 Dsp2的hpi口的hpic,映射到dsp1的0x8008,0x8009;hpia映射到0x800C,x800D; Hpid映射到0x800A,0x800B。 STM 0X1000,AR1 ST 0X00,*AR1 PORTW *AR1,0X8008 ST 0X00, *AR1 PORTW *AR1,0X8009 NOP ST 0X10, *AR1 PORTW *AR1,0X800C ST 0X20, *AR1, NOP PORTW *AR1,0X800D NOP NOP NOP Loop: ST 0X1A, *AR1; NOP PORTW *AR1,0X800A NOP ST 0X2B, *AR1 NOP PORTW *AR1,0X800B NOP NOP 15 NOP STM 0X1010,AR2 NOP PORTW 0X8OOA, *AR2 NOP STM 0X1011,AR2 NOP PORTR 0X800B, *AR2 NOP NOP ST 0X3C, *AR1 NOP PORTW *AR1,0X800B NOP NOP NOP STM 0X1012,AR2 NOP PORTR 0X800A, *AR2 NOP STM 0X1013,AR2 NOP PORTR 0X800B, *AR2 NOP NOP hear B hear .end 16
本文档为【DSP复习资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_302978
暂无简介~
格式:doc
大小:181KB
软件:Word
页数:30
分类:生活休闲
上传时间:2017-11-08
浏览量:49