DSP复习资料

合集下载

DSP 复习资料

DSP 复习资料

DSP 复习资料:1、DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。

其工作原理是对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

2、DSP芯片一般具有如下主要特点:在一个指令周期内可以完成一次乘法和一次加法;可以并行执行多个操作;快速的中断处理和硬件I/O支持;存储器采用哈佛结构;主要用于信号处理。

3、一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等组成。

4、按数据格式分为定点DSP和浮点DSP两类。

按数据的定点格式工作的DSP芯片称为定点DSP;按数据的浮点格式工作的DSP芯片称为浮点DSP。

其中C2x、C24x称为C2000系列,主要用于数字控制系统; C54x、C55x称为C5000系列,主要用于功耗低、便于携带的通信终端; C62x、C64x和C67x称为C6000系列,主要用于高性能复杂的通信系统,如移动通信基站。

5、链接命令文件(·cmd文件)指定存储器的结构和段的定位,有MEMORY和SECTIONS两条指令。

MEMORY伪指令用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。

SECTIONS伪指令用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。

6、DSP系统中流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。

其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。

同时,不同指令在同一机器周期内占用不同总线资源。

DSP复习资料

DSP复习资料
6、片内ROM里面包含引导装载程序(Bootloader)
7、简答SARAM和DARAM的联系和区别
区别前者1个机器周期内只能被访问1次后者1个机器周期内能被访问2次,可同时进行读操作和写操作。
联系都可当数据存储器和程序存储器使用
第三章
1、数的定标是指定点DSP芯片处理小数时,由程序员来确定一“小数点”的位置。
SXM的中文名称是符号扩展模式位;当SXM=1时,设置符号扩展模式,即高24位扩展为符号位。用指令表示SSBXSXM;当SXM=0时,设置符号不扩展模式,即高24位用0填充;用指令表示RSBXSXM
4、DSP芯片的乘法运算,常需要用到舍入处理方法书上p47
方法是在低16位的最高位加1,然后将低16位清除,将高16位作为结果。(将该数加0.5,之后再将小数部分去除,即舍入处理方法,也称上取整。)
{*SWWSR=0X2000

(3)P108为什么要用volatile类型的数据?
答:对程序进行编译时,代码优化器会避免存储区访问而删除一些语句,为了保留这些语句,可以使用volatile关键字可确保编译器不会对这些变量进行优化。
3、P112申明一个函数是中断函数,要使用中断关键字interrupt(怎么考??)
5、简答C语言程序代码优化有几种方法?其中并行指令属于那种优化方法?并举一例并行指令
算法优化编译优化函数优化属于编译优化ST||LD特点:单字单周期
第六章
1、小题DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。
中断程序没有参数传递,即使说明,也将被忽略
4、小题pragma指令告诉编译器如何处理函数。常用的pragma指令有

DSP复习资料

DSP复习资料

DSP复习资料1、DSP 芯⽚的结构?答:DSP 是改进的哈佛结构 (80C51是哈佛结构)。

冯.诺依曼结构与哈佛结构的区别是地址空间和数据空间分开与否。

冯诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。

哈佛结构的特点:使⽤两个独⽴的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使⽤独⽴的两条总线,分别作为CPU 与每个存储器之间的专⽤通信路径,⽽这两条总线之间毫⽆关联。

改进的哈佛结构,其结构特点为:使⽤两个独⽴的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并⾏处理;具有⼀条独⽴的地址总线和⼀条独⽴的数据总线,利⽤公⽤地址总线访问两个存储模块(程序存储模块和数据存储模块),公⽤数据总线则被⽤来完成程序存储模块或数据存储模块与CPU 之间的数据传输,改进的哈佛结构在哈佛结构的基础上⼜加以改进,即使得程序代码和数据存储空间之间也可以进⾏数据的传送。

TMS320LF2407A 采⽤改进的哈佛结构,芯⽚内部具有六条16位总线,即程序地址总线(PAB )、数据读地址总线(DRAB )、数据写地址总线(DWAB )、程序读总线(PRDB )、数据读总线(DRDB )、数据写总线(DWEB ),其程序存储器总线和数据存储器总线相互独⽴,⽀持并⾏的程序和操作数寻址,因此CPU 的读/写可在同⼀周期内进⾏,这种⾼速运算能⼒使⾃适应控制、卡尔曼滤波、神经⽹络、遗传算法等复杂控制算法得以实现。

结构⽰意图如下:2、什么是流⽔线技术?DSP 是不是具有流⽔线技术(pipeline) ?答:流⽔线技术是将各指令的各个步骤重叠起来执⾏,⽽不是⼀条指令执⾏完成之后,才开始执⾏下⼀条指令。

计算机在执⾏⼀条指令时,总要经过取指、译码、取数、执⾏运算等步骤,需要若⼲个指令周期才能完成。

流⽔线技术是将各指令的各个步骤重叠起来执⾏,⽽不是⼀条指令执⾏完成之后,才开始执⾏下⼀条指令。

DSP复习资料

DSP复习资料

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 单元)和内部数据总线和数据总线●C55X的CPU包含几个累加器:AC0--AC3每个累加器分为:低字节(ACxL),高字节(ACxH)和8个保护位(ACxG)39~32 31~16 15~0AC0AC1AC2AC3●C54的兼容模式:(1)C54x兼容模式c54xcm_on和c54cm_off指令来自C54x的代码(2)CPL模式影响直接寻址方式(3)ARMS 模式影响间接寻址模式●C55x的寻址方式:(1)绝对寻址方式:通过在指令中指定一个常数地址完成寻址。

DSP 复习资料

DSP 复习资料

1、DSP与通用CPU的主要差异2、TMS320C6000系列DSP的主要特征答案:1.采用哈弗架构:数据和程序存储空间之间相互独立,数据和程序总线分开,能够同时取操作数和指令。

内存访问速度快。

2.流水线技术:在一个周期同时进行多条指令,取指令和执行指令同时进行,减少指令执行时间。

3.多总线结构:可以在一个周期内多次访问程序和数据空间。

4.多处理单元:同时进行运算,大大提高DSP并行树立能力。

5.采用硬件乘法器:节省运算时间。

6.寻址方式:地址的计算由专门的硬件完成,无需额外时间。

7.支持多处理结构。

3、TMS320C6000系列存储系统中的Cache作用答案:作为高速缓存使用,并分为LEVEL1和LEVEL2两级,程序Cache和数据Cache共享二级存储器,以及Cache是程序缓存,只能做缓存,不能设置为映射存储器,也没有冻结和直通模式。

4、TMS320C6000的C语言开发调试流程答案:新建工程—向工程项目文件中添加文件—编写代码—编译、链接、生成.OUT文件—下载文件、执行程序(使用断点、设观察窗口)5、CCS中的Simulator与Emulator的差异答案:Simulator:软件仿真,在CCS软件上进行仿真Emulator:硬件仿真,现在到芯片上进行仿真6、CCS中可以导入系统的数据文件格式(答案不太准确,可以自己查查)答案:1.文件后缀名必须是.OUT;2.第一行为 1651 1 82000000 0 0x40000首地址个数7、CCS中查看图像数据的方法答案:View——Graph——Image——Color space:选择YUV 或RGB——start address 写入三个数据的起始地址——lines per line 改为512——pixles per line 改为512——点击确定即可8、CCS查看程序运行时钟数的设置方法9、运行次数统计与优化概念Profile ——选择setup——点击右边出现的方框中的custom,将cpu、system、cycle选中,并点击上方的时钟标志——Profile ——选择viewer ,然后将.out文件下载,将disabled里的函数全部拖进Enabled 里面,执行程序,运行结束后即可看到个函数运行时间。

DSP复习资料

DSP复习资料

DSP复习资料1、什么是数字信号处理器(DSP)?DSP 可以分为哪两类?a、数字信号处理器是一种专门用于实现各种数字信号处理算法的微处理器,通常可分为专用DSP和通用DSP两类。

b、用于实现某些特定数字信号处理功能的DSP 属于专用DSP。

什么是DSP?DSP:Digtal Signal Processing 数字信号处理技术典型的微处理器系统根据CPU特点,可以分为:1)通用单片机(Micro-controller) 8/16bit优点:成本低、体积小。

缺点:运算与扩展能力较弱。

编程:汇编、C语言。

2)PC及其兼容机(Micro-processor)缺点:成本高、体积大、实时性差。

优点:运算与扩展能力强,软件资源丰富。

编程:汇编及多种高级语言。

3)DSP(Digital Signal Processor)16/32bit特点:运算能力相当强、实时性、体积小、成本较低、功耗较低编程:汇编、C、C++。

4)专用微处理器特点:使用简单,灵活性差,主要用于一些批量生产的产品。

如家用电器的智能控制、工业控制。

DSP: Digtal Signal Processor 数字信号处理器TI公司从80代初推出了全球第一款“数字信号处理器”TMS320C010,从此引发了一场“数字信号处理”革命。

我们现在所说的DSP,如果没有特殊说明,一般均指“数字信号处理器”。

2、DSP 芯片的主要特点有哪些?DSP 从结构上进行了优化,使其更适合于哪类运算,从而可以高速实现多种不同的数字信号处理算法?DSP的特点:在一个指令周期内可完成一次乘法和一次加法运算程序和数据空间分开,可以同时访问指令空间和数据空间片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问具有低开销或无开销循环及跳转的硬件支持快速的中断处理和硬件I/O支持具有在单周期内操作的多个硬件地址产生器可以并行执行多个操作支持流水线操作,使取指令、译码、取操作数和执行指令等可以重叠执行。

DSP复习资料

DSP复习资料
应用。 2. 什么是流水线作业?P1
答:流水线作业就是使取址、译码、取操作数和执行指令等操作重叠执行。 3. 什么是哈佛总线?P1
答:哈佛总线就是程序空间和数据空间分开,分别由各自的地址总线和数据总线; 它可以同时完成获取指令和数据读取操作。 4. 2812 的 SPI 和 SCI 接口的主要异同?
EALLOW; PieVectTable.TINT0=&cpu_timer0_isr; GpioMuxRegs.GPAMUX.all=0x0000; GpioMuxRegs.GPADIR.all|=0x0001; EDIS; InitCpuTimers(); ConfigCpuTIMER(&CpuTimer0,100,2000000); StartCpuTimer0; IER|=M_INT1; PieCtrlRegs.PIEIER1.bit.INTx7=1; EINT; ERTM; for(;;) { GpioDataRegs,GPATOGGLE.bit.GPIOA0=1; CpuTimer0.InterruptCount==CpuTimer0.InterruptCount ; } } interrupt void cpu_timer0_isr(void) { CpuTimer0.InterruptCount++; PieCtrlRegs.PIEACK.all= PIEACK_GROUP1; } 15. 拨码键盘地址 0x88000,LED 显示器地址 0x88001,编程实现:拨码为 1,相应灯亮;反 之则灭。 答:#include “DSP2812x_Device.h” #include “DSP2812x_Examples.h” void InitsysCtrl(void); void main(void) { InitsysCtrl(); DINT; IER=0x0000; IFR=0x0000; unsigned int temp; while(1) { temp=*(int*)0x88000; *(int*)0x88001=temp; } } void InitsysCtrl(void) { EALLOW;

dsp复习资料

dsp复习资料

一,Dsp 的硬件结构:⑴1组程序总线(PB),3组数据总线(CB,DB,EB),4组地址总线(PAB,CAB,DAB,EAB).⑵40位算术逻辑单元alu{C16=0工作在双精度算术运算方式,C16=1工作在双16位方式}ALU 溢出后状态寄存器ST0的OVM=1时,用32位最大正数007FFFFFFFH 或最大负数FF80000000H 加载累加器,溢出后溢出标志位OVA 或OVB=1直到复位!⑶1个40位桶行移位寄存器,⑷2个独立40位ACCA 和ACCB{ACCA 和ACCB 差别在于A 的31~16位可以用途乘法器的一个输入}.⑸17X17并行乘法器与40位的专用加法器相连,用于MAC 运算.⑹比较/选择/存储单元(CSSU)用于加法比较运算,⑺指数单元EXP(40位),⑻有16bit 状态寄存器ST0,ST1和工作方式状态寄存器PMST.二,存储结构:①哈佛结构(ROM 和RAM 分开),②三个独立64kb,ROM,RAM,I/O 空间,程序空间通过PMST 的MP/MC\和OVLY 控制,MP 控制使用内部存储器,MP=0,4000H-EFFFH 程序存储空间定义为外部存储器,FF00H-FEFFH 为内部,FF00H-FFFFH 为内部ROM 存储器,工作方式为微型计算机,MP=1,4000H-FFFFH 全部定义为外部存储器,工作方式为处理器模式.当OVLY=0时,0000H~3FFFH 全部定义为外部程序存储空间,程序空间不使用内部RAM,此时内部RAM 只作为数据存储器使用,OVLY=10000H~007FH 保留,程序无法使用,0080H~3FFFH 定义为内部DARAM,即内部RAM 被映射到程序存储空间和数据存储空间.③片上外设:2个通用I/O,XF(外部标志输出信号.控制外设工作)和BIO(控制分支转移信号,监测外部状态).BIO=0时执行转移指令.④定时器:4位预分频器和16位减法计数器组成,定时设定寄存器TIM(16bit)→0024H,复位/定时TIM 装入PRD(定时寄存器→0025H,存放定时常数)寄存器的值,然后减1计数,TIM 减到0后产生TINT 中断,TCR(定时控制寄存器→0026H)用来控制定时器的控制位和状态位,包括定时分频TDDR,预标定时计数器PSC,控制位TRB 和TSS 等.周期=时钟T*(TDDR+1)*(PRD+1).⑤时钟发生器:内部振荡器和锁相环PLL{⑴硬件配置PLL,通过[CLKMD1,CLKMD2,CLKMD3R 的状态,]⑵软件设置[通过16位的CLKMD →58H 控制]},⑥主机接口HPI:{控制寄存器HPIC,地址寄存器HPIA,数据锁存器HPID,HPI 内存},三,外设接口:软件等待状态寄存器SWWSR →0028H,复位时SWWSR →7FFFH,四,中断:1,可屏蔽中断{INT0-3,串行口中断,定时器中断TINT0-1,DMA 中断(DMAC4,DMAC5).HPINT(HPI 中断)}.2,非可屏蔽中断{外部中断投复位和‾NMI ‾(可用软件中断)}中断标志寄存器IFR 和中断屏蔽寄存器IMR{中断向量地址的计算[中断向量地址是由PMST 寄存器中的IPTR(中断向量指针,9bits)和左移2位后的中断向量序号(中断向量序号为0~31,左移两位后变成7位)所组成]例如INT0的中断序号为16(10H)左移两位后成40H 若IPTR=0001H,则中断地址为00C0H,复位时IPTR 全为1,所以硬件复位后程序总是从0FF80H 执行}.五,指令系统:1,寻址方式{i.立即寻址.[用于初始化(LD#80H,A)].ii.绝对寻址[①数据存储器(dmad)寻址(mvkd exam1,*ar5)②程序存储器(pmad)寻址(mvpd table,*ar2)③端口(pa)寻址(PORTR FIFO,*AR5)④*(1K)寻址(LD *(PN),A))].iii.累加器寻址{是用累加器中的数值作为地址来读写程序存储器,READA Smem,WRITASmen}.iv.直接寻址{ADD @x,A}.v.间接寻址[(寻址范围0~64kb)利用辅助寄存器内容作为地址访问存储器(C54x 有8个16bits 辅助寄存器AR0-AR7)]vi.存储器映像寄存器(MMR))寻址{LDM,MVDM,MVMD,MVMM,POPM,PSHM,STLM,STM}vii.堆栈寻址{PSHD,PSHM,POPD,POPD}.常用缩写{Smem:16位的单寻址操作数,Xmem:16位双寻址操作数,Ymem:16位双寻址操作数,PA:16位立即数,src:源累加器,dst:目的累加器,lk:16位长立即数},六,软件开发过程:.text 文本段,.data 数据段,.bss 保留空间,通常对未初始化变量保存,.sect 建立包含代码和数据的自定义段,.usect 为未初始化变量保留存储空间的自定义段,.word 用来设置一个或多个16位带符号整型常数,.int 设置无符号整型常数.title 后面是双引号的程序名,.end 结束汇编命令,汇编程序举例:㈠堆栈的使用:100单元的堆栈,size .set 100 \stack .usect “stk ”,size\STM #stack+size SP.㈡加减乘,①Z=X+Y-W,SUM:LD @x,A\ADD @y,A\SUB @w,A\STL A,@z.②y=mx+b,ld @m,t\mpy @x,A\add @b,A\stlA,@y.③y=x1*a1+x2*a2,ld @x1,t\mpy @a1,B\ld @a2,t\mpy @x2,b\stlB,@y\sth B,@y+1④y= a i 4i =1x i stm #a,ar1\stm #x,ar2\stm #2,ar3/ld *ar1+,t\mpy *ar2+,A\loopl:ld *ar1+,tMpy *ar2+,b/max A/banz loop,*ar3-㈢数组初始化x[5]=[1,2,3,4,5].data\tbl:.word 1,2,3,4,5\.sect “.vector ”\B START\.bss x,5\.text\START:stm #x,ar5\rpt #4\MVPD TBL,*AR5.㈣设计对称FIR 滤波器(N=8).title “firs5”\.mmregs\.def start\.bss y,1\x_old .usect “data1”,4\x_new .uscet “data2”,A\size .set 4\PA0 .set 0\PA1 .set 1\.data/COEF .word 1*32768/10,2*32768/10\.text/start:ld #y,dp\ssbxfrct\stm #x_new,ar2\stm #x_old+(size-1),ar3\stm #size,bk\stm #-1,ar0\POPTR PA1,#x_new\FIR5: ADD *AR2+0%,*AR3+0%,A\RPTZ B,#(size-1)\FIRS *AR2+0%,*AR3+0%,COEF\STH B,@y\MAR *+AR2(2)%\MAR *AR3+%\MVDD *AR2,*AR3+0%\BD FIR5\POPRTR PA1,*AR2\.end 用线性缓冲法和直接寻址法实现FIR 滤波器:N=5,Y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4)程序:.title “fir1.asm ”\.mmrges\.def start\.bss y,1\XN .usect “XN ”,1\XNM1 .usect “XNM1”,1\XNM2 .usect “xnm2”,1\xnm3 .Usect “xnm3”,1\xnm4 .usect “xnm4”,1\a0 .usect “a0”,1\a1 .usect “a1”,1\a2 .usect “a2”,1\a3 .usect “a3”,1\a4 .usect “a4”,1\pa0 .set 0\pa1 .set 1\.data\table: .word1*32768/10\.word -3*32768/10\.word 5*32768/10\.word -3*32768/10\.word 1*32768/10\.text\start: ssbxfrct\stm #a0,ar1\rpt #4\mvpd table,ar1+\ld #xn,dp\portr pa1,@xn\fir1:ld @xnm4,t\Mpy @a4,a\ltd @xnm3\mac @a3,a\ltd @xnm2\mac @a2,a\ltd @xnm1,a\mac @a1,a\ltd @xn,a\mac @a0,a\ltha,@y\portw @y,pa0\bd fir1\portrpa1,@xn\.end 循环缓冲区和双操作数寻址方法实现:.title “firs ”\.mmregs\.def start\.bss new_data.1\.bss y,1\xn .usect “xn ”,5\a0 .usect “a0”,5\.data\tsble:.word 1*32768/10\.word 2*32768/10\.word 3*32768/10\.word 4*32768/10\.word 5*32768/10\.text\start:ssbxfrct\stm @a0,ar1\rpt #4\mvpd table,*ar1+\stm #xn+4,ar3\stm #a0+4,ar4\stm 5,bk\stm #-1,ar0\ld ##new_data\fir4:rptz a,#4\mac *ar3+0%,*ar4+0%,a\stha,@y\bd fir4\ldnew_data,bstl b,*ar3+0%\.end。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可能考的题型
下面对一些常用的伪指令说法正确的是:(D)
A、.def所定义的符号,是在当前模块中使用,而在别的模块中定义的符号;
B、.ref所定义的符号,是当前模块中定义,并可在别的模块中使用的符号;
C、.sect命令定义的段是未初始化的段;
D、.usect命令定义的段是未初始化的段。
7、已知一数组名为indata,长度为30个字,试用两种方法给该数组分配空间。
3、DSP的移位位数为-16~31,则桶形移位寄存器最多左移31位,右移16位;
4、在一些指令中,加上后缀“R”,表示该指令要将累加器的低16位进行舍入处理
5、简答:流水线的原理:
将指令分为几个子操作,每个子操作由不同的单元完成。
这样,每隔一个时钟周期,每个单元就可以进入一条新指令。
因此,同一个时钟周期内,在不同的单元可以处理多条指令,相当于并行执行了多条指令。TMS320C54x采用6级流水线。
.end
编程2、例x[5]={0,1,2,3,4,5}
.mmregs
.bssx, 5
.data
Table: .word 0 ,1,2,3,4
.def _c_intoo
.text
_c_intoo:STM #x, AR1
RPT #4
MVPD table,AR1+
.end
编程3、控制流水灯亮灭
.mmregs
例如,如果要在端口10h声明端口变量,并将a输出到该端口,再读取数据保存到b中,函数实现方法如下:
ioportunsigned int port10; /*访问I/O端口10h的变量*/
int fuBiblioteka c (){port10 = a; /*写a到端口10h */
...
b = port10; /*读取端口10h的值到b */
STM #9,AR2 ;设置循环计数值
LD #0,A ;累加器清0
Loop:ADD *AR1+,A ;累加运算,并修改地址
BANZ loop,*AR2- ;若计数值不为0,则循环,并计数值减1
若计数值为0,则结束循环
LD #y,DP
STL A, @y ;累加和存入y中
.end
第八章
中断程序没有参数传递,即使说明,也将被忽略
4、小题pragma指令告诉编译器如何处理函数。常用的pragma指令有
CODE_SECTION (symbol,“section name)语句含义:可以为symbol指定专门的代码存储空间,而非.bss块
DATA_SECTION (symbol,”section name”)语句含义:可以为symbol指定专门的数据存储空间,而非.data块
.text
start: STM #0,SWWSR;插入0个等待状态
STM #STACK+10h,SP;设置堆栈指针
STM #a,AR1;AR1指向a
RPT #7;移动8个数据
MVPD table,*AR1+;从程序存储器到数据存储器
CALL SUM;调用SUM子程序
end: B end
SUM: STM #a, AR3;子程序执行
...
2、可能出现的题型P110程序填空
题目:已知SWWSR的地址是0x0028,将DSP寄存器地址定义为volatile整形指针类型用合适的C代码定义并赋值为0X2000。
(1)SWWSR表示软件等待状态寄存器
(2)#define SWWSR(volatile unsigned int *)0x0028
MEMORY
{
PAGE0: ROM: org=C00h, len=1000h
PAGE1: SCR: org=60h, len=20h
CHIP: org=80h, len=200h
}
6定义(.def):在当前模块中定义,在其他模块中引用
参考(.ref):在当前模块中引用,在其他模块中定义
全局(.global):包含上面两者
MIPS,即每秒执行百万条指令;
MFLOPS,即每秒执行百万次浮点操作。
5、小题:设DSP芯片的工作频率为100MHZ,一帧的时间为20ms,则该DSP芯片在一帧内所能提供的最大运算量为200万条指令。书P11
第二章
1.ALU运算时,当C16=1时,可以分为两个16位ALU使用
2、累加器的保护位的作用防止迭代运算中产生的溢出
多总线结构,即设置了数据总线和数据总线,使运算速度提高。(哈弗结构使得总线也分为数据和程序总线)
指令系统的流水线操作,流水线操作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。(其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。同时,不同指令在同一机器周期内占用不同总线资源。)
LD #y,dp作用确定当前所在的数据页
STL A,@y寻址方式为直接寻址特点:指令代码包含了数据存储器地址的低7位
3寻址方式(主要考哪几个??)
可能考的题型:
(1)汇编语言“mov *AR0,AC0”使用的寻址方式是间接寻址模式,“mov #0x3,DPH”使用的寻址方式是直接寻址模式,“mov *(#0x011234),T2”使用的寻址方式是绝对寻址模式。
SXM的中文名称是符号扩展模式位;当SXM=1时,设置符号扩展模式,即高24位扩展为符号位。用指令表示SSBX SXM;当SXM=0时,设置符号不扩展模式,即高24位用0填充;用指令表示RSBXSXM
4、DSP芯片的乘法运算,常需要用到舍入处理方法书上p47
方法是在低16位的最高位加1,然后将低16位清除,将高16位作为结果。(将该数加0.5,之后再将小数部分去除,即舍入处理方法,也称上取整。)
.end
编程4、连加
.mmregs
.bss x,10 ;给x保留10个空间
.bss y,1 ;给y保留1个空间
.def _c_intoo
stack .usect“STACK”,10h
.text
_c_intoo:
STM #STACK+10h,SP;设置堆栈指针
STM #a,AR1;AR1指向a
STM #x,AR1 ;设置数据段的首地址
(2)乘法指令
【例】MPY 13,A;表示T*Smem→A, Smem所在的单元数据存储器地址为13(0Dh)
(3)采用间接寻址的乘加指令
MAC *AR5+,A;A+(AR5)*T→A, AR5= AR5+1
2、在直接寻址中,指令代码包含了数据存储器地址的低7位。当ST1中直接寻址编辑方式位CPL=0时,与DP相结合形成16位数据存储器地址;当ST1中直接寻址编辑方式位CPL=1时,加上SP基地址形成数据存储器地址。
(2)TMS320C55x有哪些寻址方式,试为每种寻址方式列举一条指令。
4、编程1、例:对数组进行初始化,使x[5]={0,0,0,0,0,0}。
.mmregs
.bss x, 5
.def _c_intoo
.text
_c_intoo:STM #x, AR1
LD #0, A
RPT #4
STL A,*AR1+
DSP复习资料
第一章
1、简答:书P2一个典型的DSP系统的基本构成
应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等。
DSP系统的工作过程:(简述即可)
①将输入信号x(t)经过抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。
②经过采样和A/D转换器,将滤波后的信号转换为数字信号x(n)。
解.usect .bss.data.word.asg.set.text.end的使用)
.mmregs
stack .usect“STACK”,10h
.bss a,4
.bss x,4
.bss y,1
.def start
.data
table:.word 1,2,3,4;变量初始化
.word 8,6,4,2
.def _c_intoo
.text
_c_intoo:
SSBX XF
CALL Delay
RSBX XF
CALL Delay
B _c_intoo
Delay:
STM #999,AR1
LOOP1: STM #4999,AR2
LOOP2: BANZ LOOP2,*AR2-
BANZ LOOP1,*AR1-
RET
.bss indata , 30
indata .usect“indata”, 30
第七章
1、指令执行前有关寄存器及数据存储器单元情况如下图所示,请在下图分别填写指令执行后有关寄存器及数据存储器单元的内容。
(1)加法指令【例】ADD *AR3+,14,A表示(AR3)<<14+A->A,AR3+1->AR3
5、简答C语言程序代码优化有几种方法?其中并行指令属于那种优化方法?并举一例并行指令
算法优化编译优化函数优化属于编译优化ST||LD特点:单字单周期
第六章
1、小题DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。
③数字信号处理器对x(n)进行处理,得数字信号y(n)。
④经D/A转换器,将y(n)转换成模拟信号;
⑤经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
2、小题Simulator和Eimulator分别指软件仿真 和 硬件仿真P4
3、简答:列举 DSP 芯片的特点?(后面简要阐述即可)
答:哈佛结构,即将数据存储器和程序存储器分开;
相关文档
最新文档