CCS程序设计与DSP硬件实验
- 格式:doc
- 大小:1.21 MB
- 文档页数:23
实验一熟悉CCS开发环境及DSP实验箱注意:在构建工程之前请先把仿真器正确连接好试验箱和计算机,接通试验箱电源。
1、双击CCS Stido v3.3图标,进入CCS环境。
2、打开CCS选择projec t→New3、在弹出的对话框中点击下图红色圆圈中的按钮,选择工程合适的位置。
注意:路径中不要有中文。
选择好工程需要建立的位置后,点击确定。
4、在弹出的对话框中,输入工程的名字。
例如,test。
5、点击Finish。
出现下图对话框,红圈内为添加的工程,点击工程名前面的加号,出现下图。
6、打开CCS选择Fil e→New→Source File 命令。
7、点击保存按钮。
8、输入文件的名字,点击保存。
注意:C源程序的后缀名应为.c;汇编程序的后缀名为.asm;CMD文件的后缀名为.cmd。
例如:test.c9、如下图所示,单击右键,将test.c添加到工程中。
10、选中test.c,点击打开。
11、如下图所示,即可在test.c文件中输入编写的C程序了。
注意随时保存自己编写的源文件。
12、重复上述6—11步,添加cmd文件。
13、同样的方法将rts.lib 添加到工程中。
rts.lib在C:\CCStudio_v3.3\C5400\cgtools\lib目录下。
■设置编译和连接选项1、点击Project 选择Build Opintions;2、在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以。
3、在弹出的对话框中选择连接的参数设置,Heap Size:1000;Stack Size:1000;点击确定结束设置。
4、点击Projec t→Build命令,对工程进行编译,如正确则生成out文件。
5、点击Fil e→load program ,在弹出的对话框中载入debug文件夹下的.out可知性文件。
6、装载完毕。
7、点击debu g→Go Main回到C程序的入口。
实验一 CCS使用及DSP 基本数学运算一、实验目的:1、熟悉CCS 集成开发环境,掌握工程的生成方法;2、熟悉SEED-DTK5416实验环境;3、掌握CCS 集成开发环境的调试方法;4、了解数在计算过程中的定标,掌握数的定点、浮点表示方法,定点、浮点基本运算以及定点、浮点间的相互转换。
二、实验内容:1、 DSP源文件的建立;2、 DSP程序工程文件的建立;3、编译与链接的设置,生成可执行的DSP 文件;4、进行DSP 程序的调试与改错;5、学习使用CCS 集成开发工具的调试工具;6、观察实验结果;三、实验知识背景:在DSP 编程过程中,数以二进制、十进制、与十六制表示均可。
在定点DSP 的运算过程中,数一般采用二进制与二进制补码的形式进行运算的。
其中二进制数只能代表正数不能代表负的数,而二进制补码记数系统弥补了这一缺点。
它的构成如下;在二进制的基础上,加一符号位。
符号位位于二进制数的最高位当为正数时,符号位为0,为负数时,符号位为1当采用二进制补码进行数的运算时,具有如下的两个优点:可以将加法与减法统一成加法运算符号位可以进行扩展,而其数值不变,这可以使一个比较小的数存放到比较大的寄存器当中例:1×2 + 0×1 = -2 (11110)2 = 1×(-16)+ 1×8 + …… +当将其符号位扩展三位,放入一8位的寄存器中1×2 + 0×1 = -2 (11111110)2 = 1×(-128)+ 1×64 + …… +这将为运算提供极大的方便,因而在定点的DSP 中,大多数情况采用二进制补码形式。
C5000系列的DSP 硬件只支持定点运算,浮点运算要通过软件来实现。
其运算字长为16位,也就是说,DSP 所能表示的整数的范围也就决定了,其范围为-32768到32767。
而在很多情况下,数学运算过程中不一定是整数,而且动态范围也不是固定不变的。
DSP系统开发环境实验【实验目的】1.了解DSP模块的基本特性。
2.掌握CCS)集成开发环境的软硬件调试方法。
【实验内容】1. 了解CCS的编程。
2. CCS中的软件开发环境的搭建及调试。
S中的硬件开发环境的搭建及调试。
4.实现LED的定时闪烁。
【实验器材】1.DSP开发板2.DSP仿真器3 .PC机(软件:CCS,全称:Code composer studio)【实验原理】•DSP模块的核心芯片为T MS320VC5402,系统主频可编程控制,SRAM可存储64k*16bit 数据。
T MS320VC540主要由中央处理器、内部总线控制、特殊功能寄存器、数据存储器RAM、程序存储器ROM、两个通用I/O引脚(BIO和XF) 、串行口、主机通信接口HPI、定时器(两个定时器)、中断系统(硬件中断和软件中断)等部分组成。
T MS320VC5402上有两个定时器,本实验主要对定时器0进行操作,1ms产生一次中断,并让DSP模块上的D9发光二极管每1秒闪烁一次。
本实验是个入门实验,主要是为了让用户了解如何利用本实验系统配合CCS 软件以及DSP的USB仿真器来完成代码的开发、下载和验证。
在本实验中,首先利用CCS软件创建工程,并加入相应的DSP相关文件,然后对其进行编译、下载、调试以及结果验证等。
【实验步骤】1.将DSP的USB仿真器(TDS510)连接到DSP模块上的JTAG接口和PC机,上电并安装驱动软件;2.驱动软件安装后,打开桌面上”setup ccs”软件,设置软件和硬件仿真设备;3.打开桌面上” ccs”软件,建立工程或打开一工程;4.编译,然后打开OUT文件,此时可以进行单步运行、断点设置、全速运行等调试;下面以硬件调试为例:1) 首先用建立一个工程CpuTimer.pjt,并添加源文件main.c,代码如下:#include "cpu_reg.h"int ms,f;Uint16 Temp;void main(){asm(" STM #0000h,CLKMD ");while(*CLKMD & 0x01 );asm(" STM #40C7h,CLKMD "); //设置CPU运行频率=100M/* 40C7h:5*clkin =100M30c7h:4*clkin =80M20c7h:3*clkin =60M10C7h:2*clkin =40M*/asm(" stm #4240h, SWWSR ");//2 wait except for on-chip program 1asm(" stm #00a0h, PMST "); //MP/MC = 0, IPTR = 001,ovly=0asm(" stm #0802h, BSCR ");asm(" STM #0h,IMR ");asm(" STM #0010h,TCR "); //关定时器asm(" STM #0186ah,PRD ");//1msasm(" STM #0C2fh,TCR "); //TCR=最后四位asm(" STM #0008h,IFR ");asm(" ORM #0008h,*(IMR) ");/*开时间中断*/asm(" ORM #0100h,*(IMR) ");/*开INT3中断*/asm(" SSBX XF ");asm(" RSBX INTM "); /*开中断*/f=1;ms=0;while(1){while(ms<500/f); //LED_flashms=0;asm(" RSBX XF ");while(ms<500/f);ms=0;asm(" SSBX XF ");}}interrupt void timer0(){ms++;}interrupt void int3(){f++;if (f>5) f=1;}2.)再建立一个cpu_reg.h 头文件#define int0_V AL 1<<0#define tint_V AL 1<<3#define rint_VAL 1<<4#define xint_V AL 1<<5#define SPCR10_V AL 0x0000#define SPCR20_V AL 0x0200//2 words per frame#define RCR10_V AL 0x0140#define RCR20_V AL 0x04//2 words per frame#define XCR10_VAL 0x0140#define XCR20_VAL 0x04#define PCR0_V AL 0x01//CLKG=16.9344*6M/48=2.1168M,帧脉冲宽度=24#define SRGR1_V AL2 (23<<8)+47#define SRGR1_V AL1 (23<<8)+47//帧长度=48、CLK由CPU的时钟驱动、由FSG驱动#define SRGR2_V AL1 0x3000+47//发送帧同步、时钟由内部产生(11 9位=1)//接收帧同步、时钟由外部产生(10 8位=0)//帧同步高有效,(2 3位=0),下降沿有效(2 3位=1)//时钟上升沿有效(最后2位=0),下降沿有效(最后2位=1)//引脚配置成串口,#define PCR_VAL1 0x0a03//DX is on(7=True)//RINT by RRDY#define SPCR1_V AL1 0x0080// 一帧2个字,每字24bit#define XCR1_V AL1 0x0180// 单相帧、无压缩、0-bit延迟#define XCR2_V AL1 0x0004// 一帧2个字,每字24bit#define RCR1_V AL1 0x0180// 单相帧、无压缩、0-bit延迟#define RCR2_V AL1 0x0004//McBSP Memory Mapped Registers#define CLKMD (unsigned int *)0x58#define SWCR (unsigned int *)0x2b#define IMR (unsigned int *)0x00#define SPSA0 (unsigned int *)0x38#define SPSD0 (unsigned int *)0x39#define DRR20 (unsigned int *)0x20#define DRR10 (unsigned int *)0x21#define DXR20 (unsigned int *)0x22#define DXR10 (unsigned int *)0x23#define SPSA1 (unsigned int *)0x48#define SPSD1 (unsigned int *)0x49#define DRR21 (unsigned int *)0x40#define DRR11 (unsigned int *)0x41#define DXR21 (unsigned int *)0x42#define DXR11 (unsigned int *)0x43// McBSP Subaddresed Registers#define SPCR1 0x00#define SPCR2 0x01#define RCR1 0x02#define RCR2 0x03#define XCR1 0x04#define XCR2 0x05#define SRGR1 0x06#define SRGR2 0x07#define PCR 0x0E3,)再建立一个INRAM.cmd命令文件,代码为:MEMORY{PAGE 0: EPROG: origin = 0x1400, len = 0x7c00 VECT: origin = 0xff80, len = 0x80PAGE 1: USERREGS: origin = 0x60, len = 0x1c BIOSREGS: origin = 0x7c, len = 0x4IDA TA: origin = 0x80, len = 0x1380EDATA: origin = 0x1400, len = 0x8000EDATA1: origin = 0x9400, len = 0x4c00 }SECTIONS{.vectors: {} > VECT PAGE 0.sysregs: {} > BIOSREGS PAGE 1.trcinit: {} > EPROG PAGE 0.gblinit: {} > EPROG PAGE 0frt: {} > EPROG PAGE 0.text: {} > EPROG PAGE 0.cinit: {} > EPROG PAGE 0.pinit: {} > EPROG PAGE 0.sysinit: {} > EPROG PAGE 0.bss: {} > IDA TA PAGE 1.far: {} > IDA TA PAGE 1.const: {} > IDATA PAGE 1.switch: {} > IDATA PAGE 1.sysmem: {} > IDATA PAGE 1.cio: {} > IDA TA PAGE 1.MEM$obj: {} > IDA TA PAGE 1.sysheap: {} > IDATA PAGE 1.stack: {} > IDATA PAGE 1}4)添加库文件5)编译、调试、运行这时候点击全速运行即可看到LED交替闪烁。
DSP技术及其应用实验实验题目:CCS软件基本运算实验人:学号:班级:实验地点:一. 实验目的1.学习DSP算术指令的使用;2.学习并掌握DSP的基本寻址方式。
二. 实验器材1.CVT-DSP实验箱、DSP仿真器。
三. 实验内容1.编写程序,实现数据的算术运算;四. 基础知识1.DSP寻址方式简介在上一个实验中我们仅仅使用了一些寄存器,或者说是使用了寄存器寻址,DSP的寻址方式很多,可以分为以下几类:立即数寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映射寄存器寻址、堆栈寻址,以及一些特殊的寻址比如:位倒序寻址、循环寻址。
下面简单的说明一下立即数寻址和直接寻址。
1)立即数寻址这种寻址方式最简单,指令里包括了立即操作数。
在一条指令中可对两种立即数编码。
一种是短立即数(3、5、8或9bits),另一种是16bits的长立即数。
立即数可包含在单字或双字指令中。
3-,5-,8-或9-bit值在单字指令中,16-bit值在双字指令中。
比如LD 指令允许使用3、5、8、9、16比特的立即数,FRAME指令只允许使用8比特的立即数,RPT允许使用8、16比特的立即数,而象ADD、ADDM、OR、ORM等只能使用16比特的立即数。
以下是一些立即数寻址的指令例子:2)直接寻址在直接寻址中,指令代码包含了数据存储器地址的低七位。
这7-bit作为偏移地址与数据页指针(DP)或堆栈指针(SP)相结合共同形成16-bit的数据存储器实际地址。
如下图所示。
其中CPL=0时:与9-bit的DP相结合形成数据存储器地址。
而9-bit的DP指向的是数据存储空间的512个数据页中的一页。
比如下面的程序:当CPL=1:加上SP基地址形成数据存储器地址。
示例略。
注:处理器复位后CPL默认值为0。
提示:实验算术指令由于不需要外部资源,可以不需要仿真器和实验箱。
我们可以平时自己用软件仿真,多多实验。
但是复杂的算法最好还是在线仿真,因为程序是流水线执行,软件仿真有时与实际硬件执行结果有所不同。
实验一 CCS 的使用及DSP 基本数学运算一、实验目的1、熟悉CCS 集成开发环境,掌握工程的生成方法;2、熟悉SEED-DEC2407 实验环境;3、掌握CCS 集成开发环境的调试方法;4、了解数在DSP 中的基本计算过程。
二、实验原理TI 公司为TMS320系统的集成与调试所提供的工具包括:标准评估模块Evaluation Module (EVM )、扩展开发系统eXtenfed Development System (即硬仿真器,如XDS510)、集成开发环境Code Composer Stdio(CCS )。
标准评估模块(EVM )是TI 或TI 的第三方为TMS320 DSP 的使用者设计生产的一种评价DSP 的硬件平台,其外观和布局结构如图1.1。
扩展开发系统(XDS )是功能强大的全速仿真器,用以系统级的集成与调试。
PC 机与XDS 及EVM 板的连接方式如图1.2。
图1.1 标准评估模块(EVM )外观及布局图1.2 DSP 开发调试环境硬件连接示意图发布的Code Composer Studio开放型集成DSP 开发环境(IDE )功能强大、直观、易用。
具有编程、编译、链接、在线调试等功能。
CCS2.0开发调试软件的主界面如图1.3。
图1.3 CCS2.0开发调试软件的主界面DSP 的中央处理单元CPU 是内部总线上的核心模块,负责完成数据处理的任务。
即取数,逻辑运算,送回数据。
由三部分组成:输入比例部分(定标器)、中央算术逻辑部分(CALU )、乘法器。
TMS320LF240x 系列CPU 模块的内部功能结构如图1.4。
图1.4 CPU 模块的内部功能结构TMS320LF240x 系列DSP 有2个16位的状态寄存器ST0和ST1,含有状态位和控制位。
ST0和ST1可以被保存到数据存储器(SST )或从数据存储器中加载(LST ),从而可以保存和恢复子程序的机器状态(现场保护)。
DSP 硬件课程实验报告实验一:常用指令实验一、实验目的1.熟悉DSP开发系统的连接2.了解DSP开发系统的组成和结构和应用系统构成3.熟悉常用C54X系列指令的用法(程序寻址,寄存器,I/O口,定时器,中断控制)。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,实验箱。
三、实验操作方法1、系统连接进行DSP实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:在硬件安装完成后,接通仿真器电源或启动计算机,此时,仿真盒上的“红色小灯”应点亮,否则DSP开发系统与计算机连接有问题。
2、运行CCS程序先实验箱上电,然后启动CCS,此时仿真器上的“绿色小灯”应点亮,并且CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG接口或CCS 相关设置存在问题,掉电,检查仿真器的连接、JTAG接口连接,或检查CCS 相关设置是否正确。
四、实验步骤与内容(一)简单指令程序运行实验1、实验使用资源实验通过实验箱上的XF指示灯观察程序运行结果2、实验过程启动CCS 2.0,并加载“exp01.out”;加载完毕后,单击“Run”运行程序;实验结果:可见XF灯以一定频率闪烁;单击“Halt”暂停程序运行,则XF 灯停止闪烁,如再单击“Run”,则“XF”灯又开始闪烁;关闭所有窗口,本实验完毕。
源程序查看:用下拉菜单中Project/Open,打开“Exp01.pjt”,双击“Source”,双击“exp01.asm”可查看源程序。
源程序注释如下:;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs ;定义存储器映像寄存器.global _main ;全局符号,可在外部定义_main:stm #3000h,sp ;设置堆栈指针寄存器的值为3000hssbx xf ;置位状态寄存器xfcall delay ;调用delay函数rsbx xf ;复位状态寄存器xfcall delay ;调用delay函数b _main ;无条件转移至_mainnop ;空指令nop;delay .5 seconddelay:stm 270fh,ar3 ;设置辅助寄存器ar3值为9999loop1:stm 0f9h,ar4 ;设置辅助寄存器ar4值为249loop2:banz loop2,*ar4- ;寄存器ar4值减一,当其值不为0时跳转到loop2 banz loop1,*ar3- ;寄存器ar3值减一,当其值不为0时跳转到loop1 ret ;返回nop ;空指令nop;stm 2 cycles;banz when TRUE 4 cycles; FALSE 2 cycles;0f9h=>249d;270fh=>9999d.end(二)资料存储实验1、实验使用资源本实验指导书是以TMS32OVC5410为例,介绍相关的内部和外部内存资源。
dsp实验报告实验一:CCS入门实验实验目的:1. 熟悉CCS集成开发环境,掌握工程的生成方法;熟悉SEED-DEC643实验环境; 掌握CCS集成开发环境的调试方法。
2.学习用标准C 语言编写程序;了解TI CCS开发平台下的C 语言程序设计方法和步骤; 熟悉使用软件仿真方式调试程序。
3. 学习用汇编语言编写程序; 了解汇编语言与 C 语言程序的区别和在设置上的不同;了解TMS320C6000 汇编语言程序结果和一些简单的汇编语句用法学习在CCS 环境中调试汇编代码。
4. 在了解纯C 语言程序工程和汇编语言程序工程结构的基础上,学习在C 工程中加入汇编编程的混合编程方法; 了解混合编程的注意事项;理解混合编程的必要性和在什么情况下要采用混合编程5. 熟悉CCS集成开发环境,掌握工程的生成方法; 熟悉SEED-DEC643实验环境;掌握CCS集成开发环境的调试方法。
实验原理:CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力序。
使用此命令后,要重新装载.out 文件后,再执行程序。
使用 CCS常遇见文件简介1. program.c: C 程序源文件;2. program.asm: 汇编程序源文件;3. filename.h: C 程序的头文件,包含DSP/BIOS API模块的头文件;4. filename.lib: 库文件;5. project.cmd: 连接命令文件;6. program.obj: 由源文件编译或汇编而得的目标文件;7. program.out: 经完整的编译、汇编以及连接后生成可执行文件; 8. program.map: 经完整的编译、汇编以及连接后生成空间分配文件; 9.project.wks: 存储环境设置信息的工作区文件。
P.S(CMD文件中常用的程序段名与含义1. .cinit 存放C程序中的变量初值和常量;2. .const 存放C程序中的字符常量、浮点常量和用const声明的常量;3. .text 存放C程序的代码;4. .bss 为C 程序中的全局和静态变量保留存储空间;5. .far 为C 程序中用far声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;7. .sysmem 用于 C 程序中malloc、calloc 和 realloc 函数动态分配存储空间。
实验项目5、CCS程序设计与DSP硬件实验一、实验目的(1)掌握CCS环境下程序编辑、编译、运行、下载、调试的过程。
(2)掌握DSP处理器的汇编、C语言程序设计方法。
(3)掌握DSP的硬件访问。
二、实验原理及知识点第一部分 DSP实验箱简介与CCS第二部分 CCS 软件安装第三部分 TDS510USB仿真器安装与CCS设置测试三、实验内容及步骤一、实验原理和方法开发TMS320C6xxx 应用系统一般需要以下几个调试工具来完成:1.软件集成开发环境(CCS):完成程序编译、目标文件产生、下载,进行程序和硬件的联合仿真调试。
2.仿真器:实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统的状态和数据。
CCS 通过工程来管理文件,一般包括以下几种文件:1) 源程序文件:C 语言或汇编语言文件(*.c 或*.asm),所编写的代码都写在各个源文件中;包含了所有要实现功能的代码,是工程的核心。
2) 头文件(*.h):主要定义了芯片内部寄存器结构、中断服务程序等内容。
3) 链接命令文件(*.cmd):分配RAM空间,用来将下载到RAM中的程序进行调试,是因为DSP编译器编译结果是未定位的,DSP也没有相应系统来执行代码,DSP系统的配置需求也不尽相同,因此需要定义代码的存储位置。
4) 库文件(*.lib,*.obj):包含了寄存器的地址和对应标示符的定义,还包含标准C/C++运行支持的库函数。
二.汇编语言DSP程序设计实验(一)实验原理与方法1.汇编语言程序在执行时直接从用户指定入口开始。
2.由于CCS的代码链接器默认支持C 语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。
(二)实验步骤与内容1.运行 CCS Setup连接实验箱与PC机,打开电源给实验箱供电,点击setup code composer studio v3.3,运行CCS Setup,设置CCS,就是建立CCS与用户的目标板或软仿真器之间的通信。
实验二CCS操作一、实验目的1. 掌握TMS320C5400 系列汇编语言程序的基本格式;2. 掌握程序编译、连接、运行和调试的基本过程;3. 熟悉Code Composer Studio 的使用。
二、实验设备1. 集成开发环境Code Composer Studio(以下简称CCS)2. 实验代码ccs_basic.s54、ccs_basic.cmd 和ccs_basic.gel三、实验内容、结果1.基本操作:1. 建立项目,并加入文件a 运行CCS setup,选择C5402 Simulator,选择Project→New 菜单项,建立一个新的项目ccs_basic.pjt(注意建立路径,并选择Project→add files to new project 菜单项,加入文件ccs_basic.s54 和ccs_basic.cmd;b 在工程视图中选中GEL files 文件夹,单击鼠标右键,在弹出的菜单中选择Load GEL 选项,载入ccs_basic.gel;2. 编译和连接a 编译:选择Project-->Build Option,在Compile 表单的Category 列表中,选择Basic 选项,并设置Generate debug info 为full symbolic debug 选项,选择File s选项,并在设置Asm File Ext 中写入“s54”为汇编语言扩展名;b 连接:选择Project-->Build Option,在linker 表单中的Autoinit mode 选项中选择no autointialization 模式,Output Filename 中输入.\debug\ ccs_basic.out,Code Entry Point 中输入main,Map Filename 中输入ccs_basic.map,然后保存选项设置。
c 选择Project→Build 构建整个项目,产生可执行文件ccs_basic.out;d 选择File->Load Program,装载可执行文件ccs_basic.out。
实验一 CCS使用及DSP基本数学运算一、实验目的:1、熟悉CCS集成开发环境,掌握工程的生成方法;2、熟悉SEED-DTK5416实验环境;3、掌握CCS集成开发环境的调试方法;4、了解数在计算过程中的定标,掌握数的定点、浮点表示方法,定点、浮点基本运算以及定点、浮点间的相互转换。
二、实验内容:1、 DSP源文件的建立;2、 DSP程序工程文件的建立;3、编译与链接的设置,生成可执行的DSP文件;4、进行DSP程序的调试与改错;5、学习使用CCS集成开发工具的调试工具;6、观察实验结果;三、实验知识背景:在DSP编程过程中,数以二进制、十进制、与十六制表示均可。
在定点DSP的运算过程中,数一般采用二进制与二进制补码的形式进行运算的。
其中二进制数只能代表正数不能代表负的数,而二进制补码记数系统弥补了这一缺点。
它的构成如下;在二进制的基础上,加一符号位。
符号位位于二进制数的最高位当为正数时,符号位为0,为负数时,符号位为1当采用二进制补码进行数的运算时,具有如下的两个优点:可以将加法与减法统一成加法运算符号位可以进行扩展,而其数值不变,这可以使一个比较小的数存放到比较大的寄存器当中例:(11110)2 = 1×(-16)+ 1×8 + …… + 1×2 + 0×1 = -2当将其符号位扩展三位,放入一8位的寄存器中(11111110)2 = 1×(-128)+ 1×64 + …… + 1×2 + 0×1 = -2 这将为运算提供极大的方便,因而在定点的DSP中,大多数情况采用二进制补码形式。
C5000系列的DSP硬件只支持定点运算,浮点运算要通过软件来实现。
其运算字长为16位,也就是说,DSP所能表示的整数的范围也就决定了,其范围为-32768到32767。
而在很多情况下,数学运算过程中不一定是整数,而且动态范围也不是固定不变的。
电子通信工程系DSP原理及应用实验报告学号:姓名:专业:指导老师:实验一CCS的安装与设置1.实验目的掌握CCS 2(…2000)集成开发环境的安装;掌握软件仿真环境的设置方法;熟悉CCS集成开发环境的应用界面。
2.实验设备PC机、CCS 2(…2000)IDE软件、EXP-IV DSP实验箱3.实验要求●熟悉安装CCS 2(…2000)IDE软件的步骤●根据DSP芯片的型号正确设置软件仿真环境●了解CCS集成开发环境应用界面的各项内容4.实验内容(1)CCS 2(…2000)IDE软件的安装步骤S的安装1.1退出病毒防火墙及杀毒软件1.2解压CCS20002.2 .rar文件并运行setup.exe安装程序文件。
1.3选择安装界面中“Code Cmposter Studio”选项。
如下图(1-1)所示图(1-1)1.4完成上述步骤后只需点“Next”继续。
在出现提示确认没有运行病毒检测软件的提示窗口时点“确定”。
如下图(1-2)所示图(1-2)1.5选择“Yes”同意CCS的安装协议。
如下图(1-3)所示图(1-3)1.6选择默认安装组件,点“Next”。
如下图(1-4)所示图(1-4)1.7选择默认安装路径“C:\ti”点“Next”。
如下图(1-5)所示图(1-5)1.8出现下图(1-6)所示时取消勾选项,并点击“Finish”。
图(1-6)1.9完成上述步骤,再出现的对话框中点击“确定”。
如下图(1-7)所示图(1-7)1.10安装完成后,计算机桌面出现如下图(1-8)所示的快捷方式图标。
图(1-8)(2)TMS320F2812 微处理器的软件仿真环境的设置2.1双击桌面“Setup CCS 2”的快捷方式启动设置程序。
2.2在出现的如下图(1-9)所示的窗口中依次进行①单击“Clear”清除原有设置②选择“F2812 Device Simulator”配置③单击“Import”输入配置④单击“Save and Quit”图(1-9)2.3在接下来的对话框中单击“否”完成对CCS的设置。
《DSP与嵌入式系统》实验报告目录目录 (2)实验一IO端口实验 (3)实验二定时器实验 (8)实验三AD实验 (15)实验四DA实验 (23)实验五信号过滤波器实验 (27)实验一IO端口实验一、实验目的1.1 了解 ICETEK-VC5416-A板在TMS320VC5416DSP在IO空间上的扩展。
1.2 了解 ICETEK-VC5416-A板上指示灯扩展原理。
1.3 学习在C 语言中使用扩展的控制寄存器的方法。
二、实验原理2.1 I/O 空间的扩展及使用:C54x DSP 的 I/O 空间被保留用于外部扩展。
由于在程序中访问 I/O 空间的语句只有 in 和out 指令,所以在扩展时一般将带有控制能的寄存器或分离地址访问的存储单元的地址映射到 I/O 空间,访问这部分的单元又称 I/O 端口访问。
例如:可将控制指示灯组的寄存器或锁存器映射到一个 I/O 端口地址上;A/D、D/A 等专用芯片控制端和状态寄存器也常映射到 I/O 端口上。
总之,在 I/O 空间中扩展的设备一般重点用于控制,而使用大片连续存储空间的存储器单元一般映射到数据空间。
ICETEK-VC5416-A 板将指示灯、DIP 开关、A/D、D/A、异步串行通信接口和 WatchDog的控制端等映射在 I/O 空间。
0001-0001h:WatchDog 控制寄存器3006-3006h:A/D 转换控制寄存器1000-1001h:D/A 转换控制寄存器2000-2007h:异步串口通信控制寄存器3002-3002h:板上指示灯控制寄存器3003-3003h:板上 DIP 拨动开关控制寄存器ICETEK-VC5416-A 实验箱上控制模块也使用 I/O 端口控制大部分设备:8001-8001h:读-键盘扫描值,写-液晶控制寄存器8002-8002h:液晶控制寄存器8003-8004h:液晶显示数据寄存器8005-8005h:发光二极管显示阵列控制寄存器8006-8006h:保留8007-8007h:发光二极管显示阵列控制寄存器8008-9FFFh:保留在程序中,访问 I/O 端口的语句较为简单。
实验一:DSP系统认识及CCS应用基础一、实验目的:1.学习使用CCS编程软件,对DSP的开发环境有初步的认识。
2.理解程序的执行过程,学会设置断点,对程序的运行有一定的了解。
3.通过对CCS的安装与应用,认识DSP系统,了解DSP的编程思想。
二、实验仪器:1.微型计算机SV3.1软件三、实验内容:CCS(Code Composer Studio)是一个集成开发环境,提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
除了配置仿真器硬件和 DSP 硬件系统进行硬件测试、软件调试外,还可使用 CCS 提供的软件模拟功能,在没有硬件环境的情况下,从事软件的模拟测试。
四、实验步骤:4.1 CCSv3.1的安装(1)运行下载的安装程序,双击 setup.exe 文件开始进入安装过程,如图4-1 所示。
图 4.1-1 CCSv3.1安装文件点击 Next 进入下一步,当运行到如图4-2处时,选择Custom Install选项,进入手动选择安装通道。
图 4.1-2 CCSv3.1安装过程1在图4-3界面中点击 Code Composer StudoV3.1 项,选择 Will be installed on local hard drive(将全部软件安装到本地硬盘上)。
图 4.1-3 CCSv3.1安装过程2选择好后,点击 Next 进入下一步安装过程,点击界面中的 inatsll now,正式开始软件的安装。
(2)安装完毕,进入安装完毕界面。
点击安装完毕界面中的 Finish,完成安装过程。
安装完毕后,在桌面产生“CCStudio 3.1”和“Setup CCStudio V3.1”两个图标。
双击 Setup CCStudio V3.1 进入 CCS3.1 的设置过程。
4.2 CCSv3.1的设置双击桌面的 Setup CCStudio V3.1 图标(或者从“开始”——“所有程序”——“Texas Instruments”——“Code Composer Studio 3.1”——“Setup Code Composer Studio v3.1”进入 CCS3.1 的设置过程。
实验一熟悉CCS调试环境一.实验目的和要求学会安装CCS软件,并熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。
二.实验原理CCS是Code Composer Studio的缩写,即代码设计工作室。
它是TI公司推出的集成可视化DSP软件开发工具。
DSP CCS内部集成了以下软件工具:1 DSP代码产生工具(包括DSP的C编译器、汇编优化器、汇编器和链接器);2 CCS集成开发环境(包括编辑、建立和调试DSP目标程序);3 实时基础软件DSP/BIOS(必须具有硬件开发板);4 RTDX、主机接口和API(必须具有硬件开发板);在CCS下,用户可以对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等工作。
CCS可以提供如下功能:1 设置断点;2 在断点处自动修改窗口;3 观察变量;4 观察和编辑存储器和寄存器;5 利用测试点使数据流在目标系统和文件之间流动;6 观察调用堆栈;7 观察图形信号;8 代码性能测试(profiling);9 观察反汇编和C指令执行;10 提供GEL(通用扩展语言)语言。
此语言能增加一个函数或功能到CCS菜单中来完成用户自己设定的任务,是扩展CCS功能的专用语言。
三.实验步骤1.由于CCS是以工程文件方式进行管理的,所以要在CCS中编译、汇编、链接C程序及汇编程序,首先要创建一个工程文件,然后再将相关程序放入到工程文件中。
2.向工程中添加文件首先将安装目录下( d:\ti\tutorial\sim54xx\sinewave\)的文件sine.h sine.c,sinewave.cmd拷贝到我们的工程目录下(d:\ti\myprojects\sinewave),然后选择Project→Add Files to Project,在d:\ti\myprojects\sinewave目录中查找sine.c,同时打开它。
此时系统将sine.c 文件自动添加到Project→Source中。
实验项目5、CCS程序设计与DSP硬件实验一、实验目的(1)掌握CCS环境下程序编辑、编译、运行、下载、调试的过程。
(2)掌握DSP处理器的汇编、C语言程序设计方法。
(3)掌握DSP的硬件访问。
二、实验原理及知识点第一部分 DSP实验箱简介与CCS第二部分 CCS 软件安装第三部分 TDS510USB仿真器安装与CCS设置测试三、实验内容及步骤一、实验原理和方法开发TMS320C6xxx 应用系统一般需要以下几个调试工具来完成:1.软件集成开发环境(CCS):完成程序编译、目标文件产生、下载,进行程序和硬件的联合仿真调试。
2.仿真器:实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统的状态和数据。
CCS 通过工程来管理文件,一般包括以下几种文件:1) 源程序文件:C 语言或汇编语言文件(*.c 或*.asm),所编写的代码都写在各个源文件中;包含了所有要实现功能的代码,是工程的核心。
2) 头文件(*.h):主要定义了芯片内部寄存器结构、中断服务程序等内容。
3) 链接命令文件(*.cmd):分配RAM空间,用来将下载到RAM中的程序进行调试,是因为DSP编译器编译结果是未定位的,DSP也没有相应系统来执行代码,DSP系统的配置需求也不尽相同,因此需要定义代码的存储位置。
4) 库文件(*.lib,*.obj):包含了寄存器的地址和对应标示符的定义,还包含标准C/C++运行支持的库函数。
二.汇编语言DSP程序设计实验(一)实验原理与方法1.汇编语言程序在执行时直接从用户指定入口开始。
2.由于CCS的代码链接器默认支持C 语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。
(二)实验步骤与内容1.运行 CCS Setup连接实验箱与PC机,打开电源给实验箱供电,点击setup code composer studio v3.3,运行CCS Setup,设置CCS,就是建立CCS与用户的目标板或软仿真器之间的通信。
保存配置。
2.启动 CCS3.在C:\CCStudio_v3.3\MyProjects下新建一个文件夹:myasm。
创建工程4. 设置工程编译选项选择CCS菜单project->Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization(这点是与C语言程序设计不同)注意:若省略这一步,也不影响程序建立,只不过会出现警告:warning: entry point symbol _c_int00 undefined5. 输入源程序1)输入汇编源程序选择File->New->Source File或使用工具条的快捷按钮,进入文件编辑窗口。
录入汇编源程序:;**********************************; 输入数据存放在:x,y; 本例程完成运算:x+y; 结果存放:z; 其中:x,y,z都占32位;*********************************.bss x, 4 ;排版要空一格,下同.bss y, 4.bss z, 4;.def start;.def x, y, z.textstart: ;排版要顶格mvkl x, A0;立即寻址,将变量x 的值放到寄存器A0mvkh x, A0;立即寻址,将变量x 的值放到寄存器A0mvkl y, B0;立即寻址,将变量y 的值放到寄存器B0mvkh y, B0;立即寻址,将变量y 的值放到寄存器B0mvkl z, B2;立即寻址,将变量z 的值放到寄存器B2mvkh z, B2;立即寻址,将变量z 的值放到寄存器B2mvkl 0x010a0f2a, A4;给A4 低16位赋值mvkh 0x010a0f2a, A4;给A4 高16位赋值mvkl 0x1ab31211, B4;给B4 低16位赋值mvkh 0x1ab31211, B4;给B4 高16位赋值stw A4, *A0;A4存入A0所指地址单元nop 5stw B4, *B0;B4存入B0所指地址单元nop 5ldw *A0, B1 ;将A0寻址单元的值读入B1nop 5 ;避免流水线冲突ldw *B0, A1;将B0寻址单元的值读入A1nop 5add A1, B1, A2 ;加法运算:A1+B1-->A2stw A2, *B2 ; 将A2的值存入B2所指地址单元b $ ;一直在这里跳转,注意:b后有一个空格注意:汇编语句前需要留出空格,标号顶格输入,否则编译有错误提示。
保存源程序到工程目录下,保存文件为:myasm.asm2)输入链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,进入文件编辑窗口。
输入链接命令文件内容:-stack 400-heap 400MEMORY{ISRAM : origin =0x0, len =0x1000000}SECTIONS{.vectors > ISRAM.text > ISRAM.bss > ISRAM.cinit > ISRAM.const> ISRAM.far > ISRAM.stack > ISRAM.cio > ISRAM.sysmem > ISRAM}保存源程序到工程目录下,命名为my asm.cmd。
6. 将上述编辑的源程序my asm.asm和链接命令文件my asm.cmd加入工程my asm.pjt。
7.编译源文件、建立目标文件(.out)点击菜单project->compile file,可以对文件进行编译再点击菜单Project->Build,建立目标文件成功建立的文件应该是错误和警告都为0.8.调用目标文件(调用编程可执行程序)1)连接仿真器与目标板点击:Debug->connect,连接成功后,CCS左下角有提示。
Connect连接之后,选择File->Load Program,选择\myasm\debug\myasm.out,点击Debug->Restart后PC此时指向00000000 00000000地址。
9.调试1)goto main2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。
3)单步运行用菜单debug->Step Into或F11可以单步运行。
10. 观察开启CPU寄存器观察窗口:单击菜单View Registers core。
使用单步运行,查看相应寄存器的值的变化。
还可开启Watch window,Memory窗口,进行变量、存储空间的观察。
点击view->watch window,则打开观察窗口11. 退出CCS三.C语言DSP程序设计实验(一)实验原理与方法1. 标准C 语言程序CCS 支持使用标准C 语言开发DSP 应用程序。
C源程序文件名的后缀应为.c。
CCS 在编译标准 C 语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP 的可执行代码。
最后生成的是COFF 格式的可下载到DSP 中运行的文件,其文件名后缀为.out。
由于使用C 语言编制程序,其中调用的标准C 的库函数由专门的库提供,在编译链接时编译系统还负责构建C 运行环境。
所以用户工程中需要注明使用C 的支持库。
2. 命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP 硬件中的位置分配信息。
通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。
命令文件也为链接程序提供了DSP 外扩存储器的描述。
在程序中使用CMD 文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。
3. 内存映射(map)文件的作用为了更精确地使用ROM 空间,我们就需要知道程序的大小和位置,通过建立目标程序的map 文件可以了解DSP 代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd 文件和源程序,再重新生成map 文件来观察结果。
另外,通过观察map 文件,可以掌握DSP 存储器的使用和利用情况,以便进行存储器方面的优化工作。
(二)实验步骤与内容1. 准备将DSP实验设备与硬件仿真器相连接,连接电源线,打开电源开关。
2.设置CCS 在硬件仿真(Emulator)方式下运行,选择实际的仿真器。
3.启动CCS环境4.创建工程。
选择菜单Project->New,创建ctest.pjt工程5.建立源文件1)建立C语言源程序文件。
选择FILE->New->Source,输入下列C代码,保存到文件ctest.c。
int sel_max(int a, int b);void main(){int x;int y;int z;x = 21;y = 98;while(1){z=sel_max(x,y); //函数调用}}int sel_max(int a, int b){return((a>=b)?a:b);}2)建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立ctest.cmd文件,内容如下:-stack 400-heap 400MEMORY{ISRAM : origin =0x0, len =0x1000000}SECTIONS{.vectors > ISRAM.text > ISRAM.bss > ISRAM.cinit > ISRAM.const> ISRAM.far > ISRAM.stack > ISRAM.cio > ISRAM.sysmem > ISRAM}6.工程添加文件点击菜单Project->Add Files to project,分别加入ctest.c,ctest.cmd文件,再向工程添加C:\CCStudio_v3.3\C6000\cgtools\lib下的文件rts6400.lib(这点与汇编程序设计不同)(注意:若不添加,则链接时会出现警告:warning: entry point symbol _c_int00 undefined)7.编译、建立目标文件产生ctest.out8.调用编程可执行程序1)连接仿真器与目标板点击:Debug->connect,连接成功后,CCS左下角有提示。
2)选择File->Load Program,选择\ctest\debug\ctest.out。