指令并行的规则: (1)、两个指令的总长度不能超过6个字节; (2)、在指令的执行过程中不存在操作器、地址产生单元、总线等资源冲突; (3)、其中一条指令必须有并行使能位或两条指令符合软--双并行条件。 与此同时还有几下几种情况不能使用并行方式: (1)、使用立即数寻址方式; (2)、条件跳转、条件调用、中断、复位等程序控制指令; (3)、使用下列指令或者操作修饰符:
mmap() port()
(4)、一个单独的寄存器或存储器在一个流水线节拍被读两次;
三、汇编指令;
TMS320C55x是TSM320家族中的定点数字信号处理器,可以使用两种指令集:助记符指令集和代数指令集。代数指令集中的指令类似于代数表达方式,运算关系比较清楚明了;助记符指令集与计算机汇编语言相似,采用助记符来表示指令。不过,在编程时只能使用一种指令集。TMS320C55x指令集按操作类型可分为以下6种:算术运算指令、位操作指令、扩展辅助寄存器操作指令、逻辑运算指令、程序控制指令。
(一)、算术运算指令就是对被操作数进行的加法、减法、乘法、除法等指令而进行的运算。
(二)、位操作指令支持对可操作数进行位比较、位计数、设置、扩展、抽取和状态位设置指令等操作。
(三)、扩展辅助寄存器操作指令; (四)、逻辑运算指令包括按位与/或/异或/取反、逻辑位移和循环位移。 (五)、移动指令分为以下是种类型:累加器、辅助寄存器或临时寄存器装载、存储、移动和交换;存储单元的移动及初始化;入栈和出栈;CPU寄存器装载令、存储和移动。
(六)、程序控制指令用于控制程序的流程,包括跳转指令、调用与返回指令、中断与返回指令、重复指令等。
第4部分 软件开发及CCS集成开发环境
一、DSP软件开发设计;
C55x系列处理器应用灵活、处理能力强大,为开发、使用提供了一个很好的硬件平台,要是这个平台更好的发挥作用,高效、方便的软件开发设计是不可或缺的。在数字信号处理器的软件开发中一直存在两难的选择,C/C++语言开发容易、移植性强,但效率较低,不能满足实时性要求;汇编语言效率较高,对硬件的操作更为直接,但是程序编写复杂、易读性差。移植性不好。所以在两者之间折中一下,即程序的主体框架和对实时性要求不高的部分采用C/C++语言,而算法实现则采用汇编语言,这样能够充分发挥二者的优点。
自我调度程序通常有中断程序部分、初始化部分和主循环部分,初始化部分通常完成DSP软件、硬件的初始化设置,启动系统硬件,使能DSP中断,启动DMA传送等功能。这些工作做完后,进入程序的主循环部分。主循环部分是程序的主体,将由它完成数据输入、处理和输出等工作。主循环由条件判断和处理模块组成,当满足条件,处理数据,反之,进入下一个判断条件。而中断程序通常不进行数据处理,只通过设置判断标志来影响主循环部分的运行。 并且主循环部分必须将最大时延限制在最大可能接受的时延内。
应用嵌入操作系统:在数字信号处理器中运行的操作系统必须满足系统实时性要求,操作系统的实时可分为硬实时方式和软实时方式。软实时系统有软件来进行任务的切换,而硬实时系统则按照固定时钟节拍切换任务。嵌入式实时操作系统的作用就是合理调度、分配任务的运行,使各个人物正确、及时地执行。嵌入式操作系统的核心便是操作系统内核,在任务中内核负责管理各个任务,基于优先级的内核可以分为不可剥夺型和可剥夺型两个种类型。
程序的研发设计部分全部用的是C/C++语言和汇编语言,主要就是这两种语言的应用与编写,这里就不赘述了。
当程序编写成功之后,用汇编器和链接器产生的可执行文件采用的格式是通用目标文件格式(COFF),而采用通用目标文件格式有助于实现模块化编程,而汇编器和链接器都支持用户创建多个代码段和数据段,这也有助于灵活编程。编译器产生的可以重新定位的代码和数据叫做段。段可以分为两大类:初始化段和未初始化段。初始化段装有数据或代码,在系统加载时会将这些数据或代码载入到存储器的相应位置。
链接器对汇编器编译好的代码和数据进行连接时,所依据的是链接命令文件,即.cmd文件。在链接命令文件中定义了段命,段的起始地址,段的长度,初始化的初始值等。
C55x处理器的数字信号处理库和图像、视频处理库。这些库文件都是TI公司为了满足用户的需求,并且提高运行效率,所研发出来的技术手段。数字信号处理库主要包含以下8种类型:快速傅立叶变换;滤波与卷积;自适应滤波;相关;数学运算;三角函数;其他运算;矩阵;数字信号处理库有头文件dsplib.h,目标库55xdsp.lib,源文件库55xdsp.src和在55x_test子目录下的示例程序和链接命令文件组成。
图像、视频处理库有以下几种类型函数:压缩和解压缩、图像分析;图像滤波和格式转换。
二、对CCS的认识;
TI公司的DSP集成开发环境CCS是一个在 Windows操作系统下,为开发TMS320系列DSP而设计的集成开发环境。CCS不仅包含代码生成工具,具备基本调试功能,而具备实时分析能力。它支持整个软件开发过程:从方案设计、代码生成到测试、实时分析等。
CCS的功能十分强大,他集成了代码的编辑、编译、链接和调试功能等,且支持C语言和汇编语言混合编程。
集成可视化代码编辑界面:可直接编写C语言、汇编、C语言和汇编混合、.H文件和.cmd文件等
集成代码生成工具:汇编器、优化C语言编译器、链接器等,将代码的编辑、编译、链接和调试等功能集成到一个环境中。
基本调试工具:可装入执行文件代码(.out文件)、查看寄存器窗口、存储器窗口的、反汇编窗口和变量窗口,并且支持C语言源代码级调试。
断点工具:能在调试程序的过程中,设置软件断点、硬件断点、数据空间 读/写断点、条件断点等。
探针调试工具:可用于算法仿真、数据监视等。 性能分析:可用于分析代码执行的时钟数。
实时分析和数据可视化工具:例如,数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图像等,并且拥有自动刷新功能。
GEL工具:用户利用GEL扩展语言可以编写自己的控制面板/菜单,设置GEL菜单选项,可方便直观的修改变量,配置参数等。
支持实时数据交换RTDX技术:该技术可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)的数据交换。
提供DSP/BIOS工具:增强对代码的实时分析能力,如分析代码执行的效率、调试程序执行的优先级、方便管理或使用系统资源,从而减少了开发人员对硬件资源熟悉程度的依赖性。
CCS尤为重要的特点是提供配置、构造、跟踪和分析程序的工具,并且在基本代码生成工具的基础上增加调试和实施分析功能,为使用者提供了方便、实用的开发工具,从而加速了实时、嵌入式信号处理的开发。
三、软件开发;
创建一个新文件的步鄹如下:
(1)选择主菜单“File”中的“New”选项,或者单机标准工具条创建新文件,将在编辑窗口出现一个新窗口。
(2)在新窗口中输入设计程序,同时在编辑窗口标题的文件名后面会出现一个星号(*),表示该文件被修改,保存后星号自动消失。
(3)选择主菜单“file”中的“save”或“save as”选项,或者单击标准工具条上的按钮。将出现“保存为”对话框。将文件名写入对话框,并且拓展名为“.c” 。
(4)单击“保存为”对话框上的“保存”按钮,完成文件保存。 工程项目:就可以对该文件进行编译连接,生成可执行文件。 将文件编译之后会产生一个文件扩展名为.out文件。然后,打开菜单“file”中选择“load program”选项。当程序装载完毕,之后会出现一个对画框,
然后在对这个可执行文件进行测试调节。
在程序测试过程中有时需要经常对处理器进行复位处理。当程序调试完毕之后,开始运行程序。运行程序时,有以下按钮使用:Step Into、 Step Over、step out 、run to cursor 、multiple operation、 run 、halt 、animate 、run free,在检测程序运行。
在这个过程中肯定是复杂的,里面需要各种检测工具,和实时测试工具。但是在我们所学中的文件建立中没有用到,所以就先不赘述了。如果以后用到,在查资料。
第5部分 片内外设
由于我们主要学习的是C55x系列,下面便是C55x的片内外设分为主要几大类:
一、时钟与定时器
时钟与定时器包括时钟产生器、通用定时器、实时时钟以及看门狗定时器等。时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及看门狗定时器的功能是通过计数器为系统提供定时时钟和年、月、日、时、分、秒等时钟信号,以及监控系统正常运行的看门狗时钟,并能发出相应中断。
二、外部设备连接接口
外部设备连接接口包括外部存储器连接接口、主机接口等。外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM、SBSRAM、Flash、SRAM存储器等,外部存储器接口还可以同外部并行设备链接,这些设备包括并行A/D、D/A转换器、具有异步并行接口的专用芯片,并可以通过外部存储器接口同FPGA、CPLD等连接;主机接口主要用来为主控CPU和C55x处理器之间提供一条方便、快捷的并行连接接口,这个接口用来对DSP进行控制、程序加载、数据传输等工作。
三、信号采集
信号采集类的外设包括采集模拟信号的模/数转换器和提供数字信号输入、输出功能的通用输入/输出接口。模/数转换器为DSP提供了多通道模拟/数字转换能力,通用输入、输出接口可以完成数字信号采集,当其被设置为输出模式时,可以通过这些接口对其他设备进行控制。 四、通信接口
C55x处理器为用户提供多种类型的通信接口,包括多通道缓冲串口、IIC接口、异步串口、USB 接口以及多媒体卡/SD卡接口。多通道缓冲串口可以连接串行存储器、A/D转换器,并通过该接口实现与其他处理器的高速串行连接,多媒体卡/SD卡接口可以用来扩展SD存储卡等移动设备,IIC接口、异步串行口和USB接口为DSP通过了各种通用通信接口。
五、其他外设
其他外设包括DMA控制器,、指令流水线等,这些外设用来辅助CPU工作,提高DSP的工作效率。
下面将一些主要的外设进行详细的介绍:
一、多通道缓冲串口MCBSP 它具有以下功能特点:全双工通信;双缓冲数据寄存器,允许传送连续的数据流;独立收发时钟信号和帧信号;可用128个通道进行收发;可与工业标准的编解码器、模拟接口芯片(AICs)以及其他串行A/D、D/A芯片直接接口连接;能够向CPU发送中断,向DMA控制器发送DMA事件;可设置帧同步脉冲和时钟信号的极性;传输的字长可以是8位、12位、16位、20位、24位 、或32位;具有u律和A律压缩扩展功能;可将MCBSP引脚配置为通用输入/输出引脚。
二、DMA控制器 有以下与特点:DMA可以独立于CPU工作;有四个标准端口(port)与DARAM、SARAM、外部存储器和外设相连;一个辅助端口用于HPI和存储器之间的数据传输;具有六个通道;可以设置每个通道的优先级;每个通道的传输可以有选定事件触发;当操作完成之后,DAM控制器可向CPU发出中断。
三。主机接口(EHPI) 主机接口有两种有两种——非复用方式和复用方式。如果是复用连接方式,地址和数据则都将通过数据总线总线传递。主机接口有以下寄存器:数据寄存器(HPID)、地址寄存器(HPIA)和控制寄存器(HPIC),数据寄存器是一个16位寄存器,用来存放输入/输出的数据。
以上便是主要的一些片内外设。