您好,欢迎访问三七文档
DSP复习资料第一章:数字信号处理系统组成:x(t)x(n)y(n)y(t)DSP芯片的特点:(1)采用哈佛结构(2)采用多总线结构(3)采用流水线结构(4)配有专用的硬件乘法--累加器(5)具有特殊的寻址方式和指令(6)支持并行指令操作(7)硬件配置强,具有较强的接口功能(8)支持多处理器结构DSPD的分类:(1)按分类标准的不同,DSP分为定点DSP芯片和浮点DSP芯片(2)按照字长大小的不同,DSP芯片划分为16位,24位,32位(3)按照生产厂家的不同,有TI公司的TMS320系列,ADI公司的Blackfin,SHARC,TigerSHARC系列,飞思卡尔公司的MSC系列TMS320C55X芯片的组成:CPU,存储空间,片内外设C55XCPU的内部总线结构:(1)程序地址总线(PAB):1组,24位(2)程序数据总线(PB):1组,32位(3)数据读地址总线(BAB,CAB,DAB):3组,24位(4)数据读总线(BB,CB,DB):3组,16位(5)数据写地址总线(EAB,FAB):2组,24位(6)数据写总线(EB,FB):2组,16位C55X的CPU包含:指令缓冲单元(I单元),程序流单元(P单元),地址--数据流单元(A单元)数据运算单元(D单元),存储器接口单元(M单元)和内部数据总线和数据总线抗混叠滤波A/D微处理器D/A平滑滤波C55X的CPU包含几个累加器:AC0--AC3每个累加器分为:低字节(ACxL),高字节(ACxH)和8个保护位(ACxG)39~3231~1615~0AC0AC1AC2AC3C54的兼容模式:(1)C54x兼容模式c54xcm_on和c54cm_off指令来自C54x的代码(2)CPL模式影响直接寻址方式(3)ARMS模式影响间接寻址模式C55x的寻址方式:(1)绝对寻址方式:通过在指令中指定一个常数地址完成寻址。(2)直接寻址方式;使用地址偏移量寻址(3)间接寻址方式:使用指针完成寻址。COFF文件:COFF文件的基本单位是段,COFF目标文件有三个默认段:(1).text段,通常包括可执行代码(2).data段,通常包括初始化数据(3).bss段,通常包括未初始化的变量保留存储空间。COFF为文件有两种基本类型的段:(1)初始化段:包括数据或代码,.text和.data段是初始化段,以.sect汇编指令创建的自定义初始化段也是初始化段。(2)给未初始化的数据保留存储空间。.bss段是为初始化段,以.uesct汇编指令创建的自定义段也是为初始AC0GAC0HAC0LAC1GAC1HAC1LAC2GAC2HAC2LAC3GAC3HAC3L化段。伪指令:是汇编语言程序的重要组成部分,包括汇编指令和连接指令两部分,伪指令用于处理汇编和连接过程,最后产生的目标文件不包括它们宏指令:程序中常常包含执行多次的程序段,可以定义一个宏来代替它,而不必重复写代码,在需要该程序段时只需引用宏(p183)C55x的指令流水线:(1)第一阶段为取指阶段(2)第二阶段为执行阶段C55x的堆指针:(1)数据堆栈指针SP(2)系统堆栈指针SSP,(3)一个相关的扩展寄存器SPH.寄存器:(1)XSP:扩展数据堆栈指针(2)SP:数据堆栈指针(3)XSSP:扩展系统堆栈指针。(4)SSP:系统堆栈指针(5)SPH:XSP和XSSP的高位部分连接器有两条伪指令:MEMORY和SECTIONS,连接器对程序的重新定位P177(地址重新定位和运行时间重新定位)COFF文件中的符号:外部符号是指在一个模块中定义,而在另一个模块中使用,它可以用.def,.ref,.global来定义(1).def在当前模块中定义,并可在别的模块中引用的符号。(2).ref在当前模块中引用,但在别的模块中定义的符号。(3).global可以是上面的任何一种情况。TMS320C55X可以使用两种指令集:助记符指令集和代数集。C55x指令集按操作类型可以分为6种:算术运算指令,位操作指令,扩展辅助寄存器操作指令,逻辑运算指令,程序操作指令。(1)加法指令ADD(P121)例题18:(1)ADD*AR3+,T0,T1;AR3间接寻址得到的内容与T0的内容想加,结果装入T1,并将AR3增1寄存器执行前寄存器执行后AR3AR3T0T0T1T1T1CARRYCARRY数据存储器数据存储器03020302(2)ADD*AR1,TO,AC1,AC0,将AR1寻址得到的内容左移T0位与AC1想加,结果装入AC0寄存器执行前寄存器执行后ACOAC0AC1AC1T0T0AR1AR1SXMDSXMDM40M40030233000EF0003033300022001EF0000000000000023000000000C00233000000023000000000C020002000000ACOV0ACOV0CARRYCARRY数据存储器数据存储器02000200(2)减法指令SUB(p123)例题19:SUBuns(*AR1),BORROW,AC0,AC1;将CARRY位求反,AC0减去由AR1寻址得到的内容以及;CARRY的内容,并将结果装入AC1寄存器执行前寄存器执行后AC0AC0AC1AC1AR1AR1CARRYCARRY数据存储器数据存储器03020302(3)乘法指令MPYM(P125)例题22MPYAC1,AC0;AC0=AC0*AC1执行前执行后AC0AC0AC1AC100010300030000EC00000000EC000000000000000000EBFF0FFF0302003021F000F0000260003400026000340000C00000000048000000M40M40FRCTFARTACOV1AC0V1(4)乘加指令MACM(P127)例题23:(1)MACMR*AR1,*CDP,AC2;AC2=AC2+(*AR1)*(*CDP)执行前执行后AC2AC2AR1AR1CDPCDPACOV2ACOV2数据存储器数据存储器0302030202020020(2)MACMRuns(*AR2+),uns(*AR3+),AC3;AC3=(*AR2)*(*AR3)+AC3;AC3=AR2+1,AR3=AR3+1执行前执行后行前执行后AC3AC3AR2AR2AR3AR311000000EC00000000EC3F8000030203020202020200FE000040FE00004000922100000302030202020202002300CE00ACOV3ACOV3M4M4SATDSATDFRCTFRCT数据存储器数据存储器0302030202020020(5)乘减指令MASM(P128)例题24:MASRT1,AC0,AC1;AC1=AC1--AC0*T1AC0AC0AC1AC1T1T1M40M40ACOV1ACOV1FRCTFACTC55x软件开发流程(程序转换成可执行的程序)C/C++源文件C/C++编译器(.c)汇编源文件汇编器00FE007000FE000700000000000000EC00000000EC000034000000001680000000000200002000COFF目标文件(.obj)链接器可执行的COFF文件(.out)用户采用C/C++语言或汇编语言编写源文件(.C或.asm),经C或C++编辑器,汇编器生成COFF格式的目标文件(.obj),再用链接器进行链接,生成在C55x课执行的目标代码(.out)程序阅读题(1)mov*AR0+,AC0add*AR0+,AC0movAC0,T0(2)mppy*AR0+,*AR1,AC0mpym*AR0+,*AR1+,AC1addAC1,AC0mpym*AR0+,*AR1+,AC1addAC1,AC0MovAC0,T0注释:(1)将AR0指向的数据方向放到累加器AC0中,AC0加1(2)将AR0指向的数据与累加器AC0相加,同时,AC0寄存器加1(3)将累加器AC0的值写入T0寄存器(4)将AR0和AR1指向的数据相乘放到AC0中,同时,AR0加1,AR1加1(5)将AR0和AR1指向的数据相乘放到AC1中,同时,AR0加1,AR1加1(6)将AC1中的数据和AC0中的数据相加放到AC0中(7)将AR0和AR1指向的数据相乘放到AC1中,同时,AR0加1,AR1加1(8)将AC1中的数据与AC0中的数据相加,放到AC0中(9)将AC0中的数据放到寄存器T0中
本文标题:DSP复习资料
链接地址:https://www.777doc.com/doc-2910496 .html