DSP实验手册 实验一 CCS使用及DSP的运算
- 格式:pdf
- 大小:920.97 KB
- 文档页数:20
实验一 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 基本数学运算一、实验目的: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软件基本运算实验人:学号:班级:实验地点:一. 实验目的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 技术与应用实验名称: 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的使用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右边窗口中察看源代码。
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 函数动态分配存储空间。
一、实验名称:CCS使用实验
二、实验目的:
熟悉CCS集成开发环境,掌握工程的生成方法;
熟悉SEED-DEC6437实验环境;
掌握CCS集成开发环境的调试方法。
三、实验内容:
DSP源文件的载入;
DSP程序工程文件的建立;
学习使用CCS集成开发工具的调试工具;
四、实验过程
1.文件数据的输入功能的使用
1).打开CCS,进入工作页面
2).打开project->open->sinewave.pjt
3).进行编译处理,file->load programe,载入sine.out文件
4).选择file->file I/O 添加sine.dat 文件设置连接直至显示“connected”
2.“Graph display”功能的使用
1).设置好断点和连接后,选择view->graph->time/frequency… ,出现下图所示界面
2).选择single time, 将起始地址改为程序中输出的名称,输入数据个数改为100
3).单击ok,将出现探点的波形为标准正弦波,如下
4).当比较输入、输出波形时,在输入输出函数处设置两个探点,重复上面步骤,,将图像显示选项中的单路改为双路,点击OK,得到图像如下
5). 输入输出波形上的对应点幅值如下图所示
三、时钟周期仿真
1 . 分别对整型数加法与浮点数加法仿真,确定各自所需时钟数。
2.仿真浮点数加法、乘法和除法,确定各自所需时钟数。
3.浮点数运算所需时钟数远大于整型数,而浮点数的加、减、乘、除运算所需时钟数相差不大。
由此可知有所不同计算机对整型数与浮点数的处理方式。
实验二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。
实验报告课程名称DSP原理与应用实验名称CCS的使用专业通信工程班级学号姓名指导教师2013年3 月25 日实验一 CCS的使用实验名称CCS的使用评分实验日期2013 年 3 月25 日指导教师姓名专业班级通信1081 学号一、实验目的1.掌握Code Composer Studio的安装和配置步骤过程。
2.了解Code Composer Studio软件的操作环境和基本功能,了解TMS320C55xx 软件开发过程。
(1)学习创建工程和管理工程的方法。
(2)了解基本的编译和调试功能。
(3)学习使用观察窗口。
(4)了解图形功能的使用。
二、实验设备PC兼容机一台,SEED-DTK5502实验箱。
三、实验内容1. DSP 源文件的建立;2. DSP 程序工程文件的建立;3. 学习使用CCS 集成开发工具的调试工具。
四、实验原理1.软件集成开发环境:完成系统的软件开发,进行软件和硬件仿真调试。
它也是硬件调试的辅助手段。
2.Code Composer Studio主要完成系统的软件开发和调试。
它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。
3.用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:(1)源程序文件:C语言或汇编语言文件(*.ASM 或*.C)(2)头文件(*.H)(3)命令文件(*.CMD)(4)库文件(*.LIB,*.OBJ)五、实验步骤1.点击桌面Setup CCS,设置开发环境,点击Save & Quit保存并运行CCS图1 CCS配置窗口2.打开CCS后,新建一个新的project,将头文件、命令文件和源文件添加到该工程,在源文件中编写程序图2 CCS界面3.编译文件图3 编译工具栏4.下载文件到CPU5.装载数据进来图4 下载数据界面1图5 下载数据界面2 6.查看寄存器的值图6 查看寄存器值窗口7.查看输入输出波形图7 输入数据波形图8 输出数据波形六、实验结果图9 整体界面从图9的右上角寄存器查看窗口可以查看寄存器的值,在右边图形界面可以查看输入输出值。
实验一CCS软件的使用CCS是TI公司开发的集编辑、编译、调试等功能为一体的DSP开发工具,我们本次实验通过一个简单的程序来学习CCS软件的基本使用方法。
一.实验目的:1.了解240X系列DSP程序的结构及文件组织2.了解CCS开发环境功能,掌握其使用方法二.实验器材1.CCS软件,DSP仿真器2.示波器(可选)三.实验内容1.运行CCS软件,建立工程2.输入程序3.编译工程,下载并执行实验程序,检查实验结果四.基础知识1.源代码书写格式在CCS中源代码具有自己的书写格式,简单归纳如下:(1)每一行代码分三个区:标号区、指令区、注释区①标号区必须顶格写,主要是定义变量、常量、程序标签时的名称,标号区占3个TAB的间隔,即12个字符。
②指令区位于标号区之后,以空格或TAB隔开。
如果没有标号,也必须在指令前面加上空格或TAB,不能顶格,指令码占2个TAB间隔,然后是操作数。
③注释区在标号区、指令区之后,以分号开始。
注释区前面也可以没有标号区和指令区;另外,还有专门的注释行,以*打头,必须顶格开始。
如果功能说明较多以分格线框起来。
(2)一般区分大小写(3)CCS集成开发环境对书写格式没有做要求,但养成良好的代码书写格式,增加代码的可读性,避免低级的错误,对今后软件的开发是有帮助的。
另外,其他汇编语言的编程风格也可以借用过来,如标示符命名规则、程序说明的要求等。
2.矢量文件矢量文件是DSP程序中非常重要的文件,用来管理程序复位和中断向量的配置。
当有中断发生并且处于允许状态时,程序指针跳转到中断向量表中对应的中断地址,由于中断服务程序较长,通常中断矢量文件存放的是一个跳转指令,指向实际的中断服务程序。
; SOLUTION FILE FOR VECtor.ASM.ref _c_int0.sect "vectors" ;定义主向量段;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;Interrupt vector table for core;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~reset B _c_int0 ;00h resetint1: B int1 ;02h INT1int2: B int2 ;04h INT2int3: B int3 ;06h INT3int4: B int4 ;08h INT4int5: B int5 ;0Ah INT5int6: B int6 ;0Ch INT6int7: B int7 ;0Eh reservedint8: B int8 ;10h INT8 user-definedint9: B int9 ;12h INT9 user-definedint10: B int10 ;14h INT10 user definedint11: B int11 ;16h INT11 user definedint12: B int12 ;18h INT12 user definedint13: B int13 ;1Ah INT13 user definedint14: B int14 ;1Ch INT14 user definedint15: B int15 ;1Eh INT15 user definedint16: B int16 ;20h INT16 user definedint17: B int17 ;22h TRAPint18: B int18 ;24h NMIint19: B int19 ;26h reservedint20: B int20 ;28h INT20 user definedint21: B int21 ;2Ah INT21 user definedint22: B int22 ;2Ch INT22 user definedint23: B int23 ;2Eh INT23 user definedint24: B int24 ;30h INT24 user definedint25: B int25 ;32h INT25 user definedint26: B int26 ;34h INT26 user definedint27: B int27 ;36h INT27 user definedint28: B int28 ;38h INT28 user definedint29: B int29 ;3Ah INT29 user definedint30: B int30 ;3Ch INT30 user definedint31: B int31 ;3Eh INT31 user defined3.链接配置文件一个完整的DSP程序至少包含三个部分:主程序、矢量文件、链接配置文件(*.cmd).链接配置文件确定了程序链接成最终可执行代码时的选项,其中有很多条目,实现不同方面的功能,其中最常用的也是必须的两条:(1)存储器的分配(2)指定程序入口下面是本次实验的链接文件,对于一般实验,该链接配置文件已足够了/* SOLUTION FILE FOR LAB11.CMD */-stack 40MEMORY{PAGE 0:VECS origin = 0000h, length = 0040hPVECS origin = 0044h, length = 0100hFLASH: origin = 150h, length = 7EAFhSARAM_P: origin = 8100h, length = 1000hPAGE 1:B2: origin = 0060h, length = 020hB0: origin = 200h, length = 100hB1: origin = 300h, length = 100hSARAM_D: origin = 0C00h, length = 400hPERIPH: origin = 7000h, length = 1000hEXT: origin = 8000h, length = 8000hPAGE 2:IO_EX: origin = 0000h, length = 0FF00hIO_IN: origin = 0FFF0h, length = 0Fh}SECTIONS{reset: > VECS PAGE 0.vectors > VECS PAGE 0.pvecs: > PVECS PAGE 0.text: > FLASH PAGE 0.cinit: > FLASH PAGE 0.const: > SARAM_D PAGE 1.bss: > SARAM_D PAGE 1.data: > B0 PAGE 1.stack: > B1 PAGE 1.data0: > B2 PAGE 1.buffer: > SARAM_D PAGE 1}4.将仿真器的JTAG与DEMO板正确连接,接上电源5V USB插入PC机前端的USB口,如果没有弹出任何东西,表明USB驱动正确,如果弹出发现新硬件表明USB没有驱动。
实验一CCS的使用一、实验目的1.熟悉CCS的开发环境。
2.熟悉几种主要的调试方法。
3.熟悉在调试环境下观察指令执行结果的方法。
二、实验内容1.DSP程序工程文件的建立。
2.往新建工程里添加文件并加以调试。
3.学会CCS集成开发环境的图形显示。
三、实验原理CCS提供了配置、建立、调试、跟踪和分析程序的工具,便于实时、嵌入式信号程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
四、实验步骤S安装及设置(1)CCS 2.0系统的安装。
运行setup.exe应用程序,弹出一个安装界面,选择Code Composer Studio项,就可以开始CCS 2.0的安装,按照屏幕提示完成系统的安装后,将出现Setup CCS2和CCS2两个图标。
(2)系统配置。
双击桌面上的Setup CCS 2图标,启动CCS配置。
如图1所示,在弹出对话框中单击“Clear”按钮,清除以前定义的配置。
从列出的配置文件中,选择能与使用的目标系统相匹配的配置文件。
单击加入系统配置inport按钮,将所选中的配置文件输入到当前正在创建的系统配置中,所选择的配置显示在系统配置栏目的My System目录下。
单击Save按钮,将配置保存在系统寄存器中。
图1(3)系统启动。
双击桌面上CCS 2(’C 5000)图标,启动CCS IDE,将自动利用刚创建的配置打开并显示CCS主界面。
2.新建一个工程(1)在c:\ti\myprojects文件夹中建立一个新的文件夹名为volume1。
(2)将c:\ti\tutorial\sm54xx\volume1中所有文件复制到上述新文件夹中。
(3)在Project菜单项中选择New,弹出新建工程窗口。
在Project 中填写工程名为201215406_1,单击“完成”就建立了一个新的工程项目。
3.往工程里添加文件(1)选择Project菜单选项的Add Files to Project,选择volume.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当采用二进制补码进行数的运算时,具有如下的两个优点:可以将加法与减法统一成加法运算符号位可以进行扩展,而其数值不变,这可以使一个比较小的数存放到比较大的寄存器当中例:(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。
而在很多情况下,数学运算过程中不一定是整数,而且动态范围也不是固定不变的。
如何解决这个问题?对于只支持定点运算的CPU来说,在硬件上并没有提供小数点定位的机制。
只有靠软件中人为地假设将小数点放在16位数据中的不同位置,就可以表示不同大小与不同精度的数据了,这就是数的定标。
数的定标有Q与S两种表示方法。
在Q表示法中,Q代表(Quantity of Fractional Bits)数中尾数部分的位数,即小数点右边的位数。
而S表示法中,S代表数中整数部分的位数,即小数点左边的位数。
实用中一般用Q表示法,例:Q0表示小数点在第0位的右边,即为整数。
Q15表数小数点在第15位的右边,即为小于1的小数(以二进制补码表示,第15位为符号位)。
下表给出了16位数的16种不同的Q表示法。
并列出了它们所能表示的十进制数的范围。
Q表示法S表示法十进制数表示的范围Q15 S0.15-1≤x≤0.9999695Q14 S1.14-2≤x≤1.9999390Q13 S2.13-4≤x≤3.9998779Q12 S3.12-8≤x≤7.9997559Q11 S4.11-16≤x≤15.9995117Q10 S5.10-32≤x≤31.9990234Q9 S6.9-64≤x≤63.9980469Q8 S7.8-128≤x≤127.9960938Q7 S8.7-256≤x≤255.9921875Q6 S9.6-512≤x≤511.9804375Q5 S10.5-1024≤x≤1023.96875Q4 S11.4-2048≤x≤2047.9375Q3 S12.3-4096≤x≤4095.875Q2 S13.2-8192≤x≤8191.75Q1 S14.1-16384≤x≤16383.5Q0 S15.0-32768≤x≤32767对于加法和减法运算来说,其运算结果并不会改变小数点的位置,也就是说,2个Q15的数相加或相减,其结果还是1个Q15的数。
而对于乘法运算则不然,2个Q15的数相乘,其结果将是1个Q30的数,符号位由1位扩展为2位。
如果保留高16位,舍弃低16位,则将得到1个带有2个符号位的Q14的数。
此时,要想将乘法结果与另1个Q15的数相加或相减,则需要对由乘法运算得到的带有2个符号位的Q14的数去掉一个符号位,规一化为Q15的数,即要左移1位。
对于C5000系列,在数值运算中一般采用Q15数制。
这是由于C5000在进行乘法运算时,其乘法运算单元具有自动左移一位的功能。
这样可以将两个Q15相乘后得到一Q30的数据中的两个符号位去除一个,保证其结果的正确性。
下面举例进行说明:十进制乘法 0.5×0.5 = 0.25;Q15当二进制数相乘时 0.100000000000000× 0.100000000000000 ;Q1500.0100000000000000000000000000 = 0.25 ;Q30↑符号位两个Q15的定点数相乘后得到一个带2个符号位的Q30的数,在结果保存时一般只保存与输入数据相同的精度的结果即可,也就是只保存高16位即可,但DSP乘法运算结果的高16位中包含了2个符号位,也即高16位是1个带有2个符号位的Q14的数,从而其精度将损失1位。
另外,若想用乘法结果与另1个Q15的数相加或相减,由于小数点没有对齐,将导致运算错误。
因此在保存乘法运算结果的高16位时,应将乘积左移一位,从而得到正确的Q15结果。
而这一过程在C5000的DSP中可以自动来处理。
只需要设置ST1的FRCT 位就可以了。
在C5000系列中,若采用其它的Q数制时,就需要在软件中人为地对乘法运算的结果进行相应的左移操作,才能确保数值运算的正确。
浮点数与定点数的转换关系可表示为:=(int)A×2Q;浮点数A转换成定点数B: B定点数A转换成浮点数B: B=(int)A×2-Q。
举例说明浮点数x = 0.5,定标在Q15,则定点数为X q= 0.5 × 32768 = 16384将定点数转换成浮点数也是一样。
由于定点数的表示范围是一定的,因此在进行运算时,其结果就有可能超出数的表示范围的情况,这就是溢出。
溢出有大于最大表示值,叫上溢出,小于最小值叫下溢出。
在定点运算时一定要考虑溢出的处理方法。
在DSP中可以设置溢出保护功能,当发生时,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):定点转浮点运算;2、 math.cmd这是DSP的链接文件。
它的主要功能是将DSP的每段的程序链接到相应的DSP的存贮区中。
3、 rts.lib这是一个库文件,主要包含了有关C的运行环境与相应的函数的代码。
五、实验步骤:1、将DSP仿真器与计算机连接好;2、将DSP仿真器的JTAG插头与SEED-DEC54xx单元的J8相连接;启动计算机,当计算机启动后,打开SEED-DTK5416的电源。
观察SEED-DTK_IO单元的+5V、+3.3V、+15V、-15V的电源指示灯是否均亮;若有不亮的,请断开电源,检查电源。
3、打开CCS集成开发环境,进入CCS的操作环境。
4、新建源文件创建一个未知名的源文件编写源代码并保存保存源程序名为math.c创建其他源程序(如.cmd)可重复上述步骤5、建立新工程,打开CCS,点击Project-->New,创建一个新工程工程名及路径可任意指定点击完成,已新建一个名为DTK-MATH.pjt的工程,路径为D:\ti\projects\DTK-MATH点击Project选择add files to project,添加math.c、math.cmd、rts.lib文件到工程中在下拉菜单中分别选择.c点击打开,即可添加源程序到工程中;同样的方法可以添加文件math.cmd、rts.lib到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib文件已经加到工程文件中以下操作可使您对工程中的文件进行打开、删除、查看属性等操作6、设置编译与连接选项设置相应的编译参数,一般情况下,按默认值就可以;进行连接的参数设置,设置输出文件名,堆栈的大小以及初如化的方式。
设置连接顺序,注:当使用rts.lib时将其放在最后。
点击Project-->Build all,对工程进行编译,如正确则生成 DTK-math.out;若是修改程序,可以使用Project->Build命令,进行编译连接,它只对修改部分做编译连接工作。
可节省编译与连接的时间。
编译通过,生成DTK-math.out7、点击File-->load program,载入debug 文件夹下的可执行文件DTK-MATH.out装载完毕点击窗口左侧的Go Main回到C程序的入口进入C程序的入口设置断点、打开CPU与外设寄存器的观察窗;File->Workspace->Save Workspace…保存调试环境,以便下次调试时,不再需要重新进行设置。
只要File->Workspace->Load Workspace…即可恢复当前的观察窗与断点的设置运行程序到第一个断点在STDout观察窗内看定点运算是否正确。
然后再运行程序到第二个断点,观察浮点运算是否正确;再运行程序,观察浮点与定点之间的转换是否正确。
8、观察CPU寄存器、Memory、Graph关于Graph的设置在以后的实验中有详细的说明,这里就不再说明了。
在图示窗口中可观察到CPU各寄存器的值和外围寄存器的值9、调试工具(debug)在下拉菜单中可选择复位CPU、进入C主程序、重新开始等操作。
以下操作将会在调试过程中经常用到:F5 运行F8 单步运行且进入子程序中F9 设置断点F10 单步运行。
Probe Points是一个对调试有相当帮助的工具,它允许CCS更新观窗口并可以完成在程序的指定处(设置Probe Point处)将PC文件数据读到存贮器或将存贮器数据写入到PC文件中,应用此功能时,设置FILE I/O的属性。