dsp实验-CCS操作(精)

合集下载

DSP实验手册实验一CCS使用及DSP的运算(精)

DSP实验手册实验一CCS使用及DSP的运算(精)

实验一 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实验手册实验一CCS使用及DSP的运算(精)

DSP实验手册实验一CCS使用及DSP的运算(精)

实验一 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。

而在很多情况下,数学运算过程中不一定是整数,而且动态范围也不是固定不变的。

实验一 CCS使用及DSP基本数学运算

实验一 CCS使用及DSP基本数学运算

四、实验程序结构说明 1.math.c这个文件中包含了实验关于DSP运算的主演函数。 主要有: fixed_add(int x,int y):定点加法运算; fixed_sub(int x,int y):定点减法运算; fixed_mul(int x,int y):定点乘法运算; fixed_div(int x,int y):定点除法运算; float_add(double x,double y):浮点加法运算; float_sub(double x,double y):浮点减法运算; float_mul(double x,double y):浮点乘法运算; float_div(double x,double y):浮点除法运算; float_fixed(double x):浮点转定点运算; fixed_float(int x):定点转浮点运算;
结果不超过16位表示范围 • 设x的Q值为Qx,y的Q值为Qy,且Qx>Qy,加法/ 减法结果z的定标值为Qz,则: • z=x+y
zq 2
Qz
xq 2
Qx
yq 2 ] 2
Qx
Qy
xq 2
Qx
yq 2
( Qx Qy )
2Qx
( Qz Qx )
⑶加载源文件到工程
点击Project,选择Add Files to Project,添加 math.c、math.cmd、rts.lib文件到工程中。
①添加源文件到工程 在下拉菜单中选择.c点击打开,即可添加 源程序到工程中
②同样的方法可以添加文件math.cmd、rts.lib到工 程文件中 在下面窗口中可以看到math.c、rts.lib文件已经加 到工程文件中。

DSP实验报告CCSC5000软件的安装和使用(精)

DSP实验报告CCSC5000软件的安装和使用(精)

技术及其应用实验实验名称: CCS C5000软件的安装和使用实验人:学号:班级:实验地点:实验一 CCS C5000软件的安装和使用一、实验目的能熟悉的安装和运用软件。

二、实验器材1、CVT-DSP实验箱;2、DSP仿真器;3、计算机电脑。

三、实验内容按照一定程序步骤安装软件,并进行使用。

四、实验步骤1.CCS C5000安装运行光盘中“ccs/ccs5000”目录下的setup.exe,选择安装“code composer Studio”即可。

2.CVT - XDS510PP 在C5000下的安装和设置1 驱动程序的安装运行光盘中“driver/ c5000驱动程序”目录下的SetupCC54x.exe,当需要输入目标位置时,如下图:选择“Browse”输入ccs5000安装目录;最后需要安装并口驱动程序,“sdiont.sys”。

2) XDS510PP的设置运行CCS5000 的设置程序,如下图:选择“import a Configuration File”使用“Clear”选项将系统默认的设置进行清除,然后在“Available Configurations”列表框中选中“C54x PP Emulator-0x378”,最后选择“Import”,如下图:注:上述设置假定仿真器连接的是LPT1,且LPT的地址为0x378此时在左边的系统配置列表中可以看到“sdgo5xx”,如下图:选中“sdgo5xx”,使用鼠标右键或者是通过“Edit”菜单查看该配置的属性:将“Board Properties”子项中的I/O端口地址设置为正确的地址,如下图,将端口号设为0x378:最后在“Startup GEL Files(s”子项中设置相应的GEL文件,下图假设使用的是5416的处理器:3.CVT - XDS510PP 仿真器的配置运行Sdconfig,如下图:将“Name of device”修改为“XDS510pp”,将“Emulator port”修改为“spp8”或者“epp”,保存配置结果。

TIDSP集成开发环境CCS的使用(精)

TIDSP集成开发环境CCS的使用(精)
单击Open。(也可在工程图标处单击鼠标右键在快捷菜单中选Add Files toProject,或将文件拖入工程视图窗口的文件夹中。)
2在CCS中选择菜单Project → Add Files to Project,并在文件类型选框中选
汇编源文件(*.a*, *.s*),然后选vectors.asm和load.asm这两个文件并单击Open。这些文件中包含了设置复位RESET中断到程序的C入口
c_int00的一些汇编指令。(对于更加复杂的程序,可在vectors.asm文件中定义更多的中断向量。也可利用DSP/BIOS来自动定义所有的中断向量。)
3在CCS中选择菜单Project → Add Files to Project,并在文件类型选框中选
择链接命令文件(*.cmd),然后选volume.cmd并单击Open,该命令文件将汇编程序的段映射到DSP的存储空间中。
4在CCS中选择菜单Project → Add Files to Project,进入编译库文件夹
(c:\ti\c5400\cgtools\lib),在文件类型选框中选择目标文件类型和库文件类型(*.o*, *.lib),为所配置的目标DSP选rts.lib文件并单击Open。该库文件为目标DSP提供了运行时间(runtime)支持。(对于一些目标DSP,运行时间库可以是一个更特殊的文件名,如rts_ext.lib。)
2、硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。
本次实验主要采用软件仿真器模式。
二、CCS系统配置
采用标准配置文件进行系统配置的步,弹出对话框。
步骤2:清除以前定义的配置。
步骤3:选择与目标系统相匹配的配置文件。

实验一CCS的使用及DSP基本数学运算解读

实验一CCS的使用及DSP基本数学运算解读

实验一 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实验报告CCS 设置和常用指令

dsp实验报告CCS 设置和常用指令

北京联合大学智慧城市学院实验报告课程名称:DSP 技术与应用实验名称: CCS设置和常用指令班级:通信14姓名学号:2017 年 10 月 21 日实验一 CCS 设置和常用指令一、实验目的熟悉CSS设置方法;会建立汇编语言源文件;会建立工程项目;会将文件加入到工程;会使用汇编、链接命令;会加载、运行程序。

二、实验内容1、编写汇编语言常用的装入和存储指令、算术指令、逻辑指令、程序控制指令50句。

2、使用汇编命令检查所编写的汇编语言源语句格式是否正确,如果有错误则找出并改正,直到没有错误为止。

三、实验设备每组PC 机一台;CCS-DSP 集成开发环境。

四、实验步骤1)CCS 设置及源文件编写、汇编、链接、加载、运行过程1、仿真器驱动的安装2、打开CCS,双击Setup CCS 环境设置3、连接试验箱系统4、建立新工程Project New5、建立新文件,编写源文件、链接命令文件6、加新建的文件到项目7、汇编源、链接文件8、加载、运行程序2)编写常用汇编语言指令装入和存储指令、算术指令、逻辑指令、程序控制指令共计50 句。

使用汇编命令菜单Project-Compile file,检查语句,如果有错误改正之,直到汇编没有错误为止。

五、实验报告1、CCS 工作环境设置过程:要有截图和说明。

新建工程并建立工作区建立ASM文件并保存2、编写的汇编语言语句和程序,要有截图。

3、汇编、链接、运行的结果:要有截图和说明。

4、实验结论通过本次实验,我熟悉了CCS的集成开发环境和运行环境,同时熟悉了CSS设置方法,在编译器里面进行源文件的编写,将文件添加到工程,最后经行加载、运行程序。

今天的这次实验让我对DSP的汇编语言有了更深一步的了解,在编译的过程中,我们组遇到了很多问题,但是最后通过查书和其他组的帮助,将问题一一解决。

及时地完成了任务。

附录:SUBB 1,B;从累加器中减去带借位减操作数DELAY 16;储存器单元延迟ADDC 1000h,A;带进位的加法SUBC 1000h,A;有条件减法SQUR 1000h,A;1000位置的数字的平方加到累加器A中DADD 12,A;双精度12加到累加器AADD 1H,A ; 操作数1加至累加器AADD 2H,2,A ; 操作数2移位后加至累加器AABS A;取绝对值CMPL A;累加器取反EXP A;求累加器中数据的指数MAX A;求累加器A最大值MIN B;求累加器B最小值NORM A;归一化SAT A;累加器饱和运算SUB #30,A;从累加器中减去30ADD #10,B;10加到累加器BMPY #20,A;20和累加器相乘MAC #10,#40,A;10和40相乘放到累加器A中SUB 3,A ;从累加器A中减去操作数3ROR B;累加器B经过进位位循环右移OR #1,B;1和累加器B相或XOR 10,A;10和累加器相异或RETE;开中断,从中断返回RETF;开中断,从中断快速返回ROL A;累加器A经过进位位循环左移SFTC A;累加器A条件移位BITT 1;测试由T寄存器指定的位AND 14,A ;操作数14与累加器A相与AND #1,A;1与累加A相与CMPM 1,#1k;储存单元与长立即数比较BACC A;按累加器规定地址转移PSHD 1;将1压入堆栈CALA A;按累加器的地址调子程序RPT #10;重复执行下调指令11次FRAME 1;堆栈指针偏移一个立即数值LD 31,16,A ;操作数左移16位后加载至累加器。

实验一 TI DSP集成开发环境CCS的使用

实验一  TI DSP集成开发环境CCS的使用

实验一 TI DSP集成开发环境CCS的使用CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows 风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。

一、CCS简介CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具。

CCS有两种工作模式:1、软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

2、硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

本次实验主要采用软件仿真器模式。

二、CCS系统配置采用标准配置文件进行系统配置的步骤:步骤1:启动CCS配置程序。

双击桌面上的Setup CCS快捷图标,弹出系统配置界面。

步骤2:选择与目标系统相匹配的配置文件(若已有别的目标系统配置文件,清除以前定义的配置,再进行选择)。

将所选中的配置文件加入到系统配置中。

步骤3:保存系统配置。

单击“Save”按钮,出现如下窗口,将系统配置保存在系统寄存器中,完成CCS的系统配置。

,进入CCS开发环境界面选择“是”,进入CCS开发环境界面。

三、CCS 中常用文件名和应用界面1、常用文件名*.cmd —— 链接命令文件;*.obj —— 由源文件编译或汇编后所生成的目标文件;*.out —— 完成编译、汇编、链接后所形成的可执行文件,可在CCS 监控下调试和执行。

2、应用界面四、实验举例1.创建新工程利用CCS创建一个新工程,然后向该工程中添加源代码文件和库文件。

2.向工程中添加文件一个工程项目包括源程序、库文件、链接命令文件和头文件等。

3.察看源代码在工程视图中volume.c上双击,就可在CCS右边窗口中察看源代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二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→Buil
d 构建整个项目,产生可执行文件ccs_basic.out;
d 选择File->Load Program,装载可执行文件ccs_basic.out。

2.练习
1 观察存储器映象文件ccs_basic.Map,理解存储器的配置情况;
2 观察和修改存储器单元的内容
1. 观察存储器映象Map 文件
选择File→Open 打开ccs_basic.Map 文件,可观察
a 存储器的配置情况:页面0 为程序空间,页面1 为数据空间;
b 程序文本段:起始地址0x1000,存储区长度为0x0021;
c 数据段:其中需初始化数据段.data 起始地址0x2005,存储区长度为4;
d 不需初始化数据段.bss 起始地址0x2000,存储区长度为5;
e 堆栈段:起始地址0x0100,存储区长度为0x0400;
f 向量段:起始地址0x0080,存储区长度为0x0080;
g 全局符号在存储器中的位置:共14 个符号,如符号.bss 在存储器中的位置为
0x2000。

将上述信息与cmd 文件中的设置比较,理解cmd 文件和连接器的关系。

答:cmd 文件为配置文件,配置文件在连接的过程中将定义DSP 的RAM 空间,
也就是对存储空间起一个配置作用。

DSP 在程序中引入了各个段的概念,相应的连接时就需要进行各个段的分配。

配置文件ccs.basic.cmd 内容如下:
MEMORY
{
PAGE 0:
VECS: org=0x0080, len=0x80
PROM: org=0x1000, len=0x1000 /* 4k words */
PAGE 1:
STACK:org=0x100, len=0x400 /* 1k words */
DARAM: org=0x2000, len=0x1000 /* 4k words */
}
SECTIONS
{ .text:> PROM PAGE 0
vectors :> VECS PAGE 0
.bss :> DARAM PAGE 1
.data :> DARAM PAGE 1
}
可以发现以上信息基本与存储器映象文件ccs_basic.Map 中相同。

memory
部分说明了存储空间的页数、长度、起始点和名称。

Section 部分是对段的
配置说明:.text 段和向量段固定的连接至程序空间;.bss 段和.stack 段固定的连接至数据空间,存储类型为RAM。

连接后的配置结果为向量段从第0 页的0x0080 地址开始存放,代码段从第0 页的0x1000 地址开始存放,堆栈段从第1 页的0x100 地址开始存放,数据段从第1 页的0x2000 地址开始存放。

2. 输出文件ccs_basic.out 的运行和调试实验代码如下:
STACK_ADDR .set 0x0500 ;设置堆栈底端地址
;在变量段分配数据,为未初始化的变量保留空间
.bss a,2
.bss x,2
.bss y,1
;在数据段分配数据,存入初始化数据
.data
table:
.word 10,5 ;初始化a1=10,a2=5
.word 8,6 ;初始化x1=8,x2=6
.mmregs ;开启系统默认的寄存器
.global main ;定义全局符号
;------------------------------------------------------------------------------
.text ;开始编写程序
main:
stm #STACK_ADDR, SP ;设置堆栈
stm #0x00a8, PMST
stm #0x0000, SWWSR
;================================================
stm #a, AR2 ;设置AR1 指向a
stm #table, AR3 ;设置AR3 指向table
rpt #1
mvdd *AR3+, *AR2+ ;循环一次,将0x000A 和0x0005 存放在地址0x2000 stm #x, AR2 ;设置AR2 指向x
rpt #1
mvdd *AR3+, *AR2+ ;将地址0x2005 低16 位的0x0008 和0x0006 存放到地址为0x2002 的存储器空间
call SUM ;执行sum 模块的功能
;死循环,使PC 在当程序结束时锁定在一个已知的区域
dead_loop:
nop
nop
nop
b dead_loop
;================================================
; y=a1*x1+a2*x2
SUM:
stm #a, AR3 ;设置AR3 指向a
stm #x, AR4 ;设置AR4 指向x
rptz A, #1 ;清零寄存器A,并设置将下条乘加指令循环一次
mac *AR3+, *AR4+, A ;完成a1*x1+a2*x2,最终的结果存放在A 中
stl A, *(y ;将寄存器A 的底16 位存放在地址0x2004
ret
;------------------------------------------------------------------------------
.sect "vectors" ;定义初始化了的带名称的段
int_RESET:
b main ;当有复位中断时,跳转至main
nop
nop
.space 124*16 ;若没有其他的中断,保留空间
程序流程如下:
a 运行程序:将可执行文件装载到simulator 中,选择Debug→Run 或按F5 键
运行程序,按shift F5 键可中止程序的运行;选择Debug→Step into 或按F8 键可实现程序的单步执行。

b 设置断点:把光标移到某一行,按F9 键,这一行将会以红色高亮显示,表示在该行加了一个断点.
3. 观察和修改存储器单元的内容
a 点击CCS 操作界面左侧调试工具栏图标,出现寄存器窗口,在该窗口查看存
储器的地址。

单步执行过程中寄存器的地址随之程序的执行而不断相应的改变。

如SP 在main 的第一条指令中设置地址为0x0500,但是在call sum 执行后就变为
0x04FF。

其中AR1、AR2 的值也不断变化。

b 选择View→memory 或点击CCS 操作界面左侧调试工具栏图标,在弹出的菜单中输入存储器地址,可观察存储器的内容。

输入地址0x2000,可观察到如下内容:
.
.bss 段从地址0x2000 开始为变量预留了空间,0x2005 开始的数据段中存放了初始化数据,程序完成后,变量被赋值,且最终结果006E 保存在y 中。

c 修改源汇编程序中数据段内容,可查看存储器单元内容的变化。

在数据表格复制到数组a[]后,如果把a[0]的值由10 改为1(修改文件时注意去掉其只读属性,后面类似)。

运行后,地址0x2000 中存放的数据变为0x0001,求和的结果即y 中存放的数据变为0x0026。

四、实验心得
1:第一个实验主要是学习安装了ccs调试器和了解了DSK 板的基本硬件配置。

2:第二个实验学习Code Composer Studio 的各项菜单栏及工具栏的基本功能,了解基本汇编指令,最后实验完成了对y=a1*x1+a2*x2 功能的的实现。

相关文档
最新文档