DSP寻址方式与指令系统
- 格式:ppt
- 大小:2.79 MB
- 文档页数:76
第3章软件开发基础33 整个开发过程可分为四大步骤。
第一步,编制源程序。
源程序的编制,可采用汇编语言,也可采用高级语言(主要是C/C++语言)。
其中汇编程序运行速度最快,效率最高,能充分利用DSP芯片所有硬件特性,并能直接控制硬件资源,因此在数学运算、信号处理和高速测控等场合下特别有效。
但是由于不同DSP芯片采用的汇编语言不同,因此采用汇编编程比较繁杂,开发周期长,且程序的通用性、可移植性相对较差。
采用高级语言可大大提高开发速度,以及程序的通用性和可移植性;但是某些情况下(如实现FFT)C/C++代码的效率无法与汇编代码相比,不能最佳利用DSP内部硬件资源,对某些硬件的控制也不如汇编程序方便,甚至无法实现。
因此很多情况下,DSP应用程序往往需要C/C++和汇编混合编程来实现。
早期DSP软件开发一般使用汇编实现高效的算法,该开发方式对于小型系统的实现非常有效。
然而,随着DSP应用系统规模和复杂程度的提高,软件开发需要的工作量越来越大。
在开发时间和成本的限制下,开发方式逐渐向高级语言转变。
因此,F28335 DSP控制器一般采用C/C++语言或混合编程的方法进行软件开发。
第二步,通过代码产生工具产生可执行代码。
代码产生工具包括汇编语言工具和C/C++语言工具。
汇编语言工具的功能是将汇编程序转化为公用目标文件格式(Common Object File Format,COFF)的可执行代码。
TMS320C2000系列DSP的汇编语言工具主要包括汇编器、连接器、归档器、十六进制转换程序等。
由汇编器(Assembler)将汇编文件转化为COFF目标文件(.obj);由连接器(Linker)将COFF目标文件连接起来产生一个可执行模块(.out);由归档器(Archiver)将一组文件归入一个归档库,以建立目标文件库;由十六进制转换程序将COFF目标文件转换成可被编程器接收的TI-Tagged、Intel、Motorola或Tentron目标文件格式。
《DSP原理与应用》寻址方式和指令系统三、TMS320LF240x寻址方式和指令系统3.1 寻址方式TMS320LF240x指令集采用3种基本的存储器寻址方式:立即寻址方式、直接寻址方式和间接寻址方式。
在立即寻址方式中,指令中所需要的常数作为指令的操作数直接给出。
立即寻址方式包括短立即寻址和长立即寻址。
在短立即寻址中,指令字包含一个8位、9位或13位的操作数,而长立即寻址采用16位的操作数。
当需要访问数据存储器时,用户可采用直接或间接寻址方式。
直接寻址方式将指令字的7位与数据存储器页指针(DP)的9位连接起来,形成16位数据存储器地址。
间接寻址通过8个16位辅助寄存器访问数据存储器。
3.1.1 立即寻址方式在立即寻址方式中,指令字中包含指令所需的一个常数。
对于短立即寻址,采用短立即寻址的指令将一个8位、9位或13位的常数作为操作数。
短立即寻址指令为一个单指令字,并且有一个常数嵌在该指令中。
长立即寻址的指令将一个16位常数作为操作数,从而需要两条指令字。
该常数作为第2条指令字被发送,该16位值可以是绝对常数或二进制补码。
如1:RPT #49 ;将紧跟RPT指令后的那条指令执行50次。
代码是:10111011 00110001 ;前面是RPT指令代码,后面是8位常数=49。
如2:ADD #65534,2 ;将数据65534左移两位后,再将结果加到累加器。
代码是:101111111001 0010 ;前面12位是立即寻址的ADD代码,后面是移位数。
11111111 11111110 ;是16位常数=65534=FFFEh。
3.1.2 直接寻址方式在直接寻址方式中,数据存储器地址以128为单位被分成若干块,这些块被称为数据页。
64K的数据存储器总共包含512个数据页,标号为0~511,如下表3-1所列。
当前数据页由状态寄存器ST0中的9位数据页指针(DP)值决定。
除数据页之外,处理器还必须知道该页上被访问的特定单元,这取决于7位偏移量,见表3-1。
第六章 DSP的寻址方式和汇编指令当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。
根据程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。
汇编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种操作。
在本章节当中将主要以基于C28x的DSP芯片为例,为读者讲解DSP的寻址方式和汇编指令系统,其中大部分内容也可适用于其他Ti公司的DSP产品。
6.1汇编语言指令集概述在学习C28x系列DSP的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最重要的操作数符号和寄存器经行详细说明。
在进行汇编讲解之前先来了解一下开发的核心——CPU。
在TMS320C2000系列中,CPU 内核为:C20x/C24x/C240x:C2xLP:C27x/C28x:C27x、C28x这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。
可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。
C28x芯片具有3种操作模式:1.C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统,因此,一般应使C28x芯片工作于该种模式。
2.C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。
在该模式下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。
3.C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x代码生成工具编译生成的。
在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。