第五章 软件开发工具CCS的使用.

Slides:



Advertisements
Similar presentations
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
Advertisements

单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
第6章 eXpressDSP实时软件开发技术及CCS应用
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
第6章 CCS集成开发环境 6.1 CCS系统安装与设置 6.2 CCS菜单和工具栏 6.3 CCS中的编译器、汇编器和链接器选项设置
Android开发入门 -----Android 开发“Ready go!” 主讲:李晓蕾
微 電 腦 實 驗 Megawin MPC82G516 操作與環境設定.
第4章 PIC软件开发设计基础.
第二讲 搭建Java Web开发环境 主讲人:孙娜
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
單晶片MCS-51 C語言入門實習 第2章 KEIL-51工具軟體 作者:董勝源.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
数字信号处理 FIR和IIR滤波器实验.
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第一讲: 基本流程(1).
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
Windows 7 的系统设置.
YMSM D-PACK 安装手册 作成者:D-PACK维护组(YMSLx) 作成日:
VSS使用简介 王树升
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
Gzip编译及调试 曹益华
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
Visual Studio 2010简捷入门.
C语言程序设计 主讲教师:陆幼利.
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
上机环境介绍 杨斌
VisComposer 2019/4/17.
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
姚金宇 MIT SCHEME 使用说明 姚金宇
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
3Glasses SDK for Unreal Engine Plugin
第4章 Excel电子表格制作软件 4.4 函数(一).
VC++程序调试演示 An Overview of ICU 19th International Unicode Conference
1 月 日 一 二 三 四 五 六 元旦 11/20 11/21 11/22 11/23 11/ /25 11/26 11/27 11/28 11/29 11/30 12/ /2.
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
VRP教程 2011.
Delphi 7.0开发示例.
第二章ADS1.2开发环境创建与简介.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
YOUR SUBTITLE GOES HERE
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
RefWorks使用指南 归档、管理个人参考文献.
LOGO HERE 单击此处添加 您的标题标题标题 PRESENTED BY JANE DOE
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
Presentation transcript:

第五章 软件开发工具CCS的使用

一、 CCS集成开发环境简介 CCS(Code Composer Studio)是一个完整的DSP集成开发环境,是目前最优秀、最流行的DSP开发软件之一。现在TI所有的DSP都可以使用该软件工具进行开发,只有‘C5000和‘C6000的CCS中才提供DSP/BIOS功能,而在‘C2000和‘C3X的中是没有DSP/BIOS功能的。所以有时也将用于‘C2000和‘C3X开发的集成开发环境称为 cc(Code Composer),以示区别。 CCS支持软仿真器、各种型号硬件仿真器、各种DSK和EVM板,需要向相应的生产厂家索取驱动程序,然后在CCS中安装即可。

CCS的功能介绍 集成可视化代码编辑界面,可直接编写c、汇编、.H文件、.cmd文件等。 基本调试工具,如装入执行代码(.OUT文件),查看寄存器窗口,存储器窗口,反汇编窗口,变量窗口等,支持c源代码级调试。 支持多DSP调试。 断点工具,包括硬件断点、数据空间读/写断点,条件断点(使用GEL编写表达式)等等。 探针工具(probe points),可用于算法仿真,数据监视等。 剖析工具(profile points),可用于评估代码执行的时钟数。

数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图象等,并可自动刷新(使用Animate命令运行)。 提供GEL工具,令用户可以编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数等。 支持RTDX(Real Time Data exchange)技术,利用该技术可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)实现数据交换。 开放式的plug—ins技术,支持其它第三方的ActiveX插件,支持各种仿真器包括软仿真(只需安装相应的驱动程序)。 提供DSP/BIOS工具,利用该工具可增强对代码的实时分析能力,如分析代码执行的效率,调度程序执行的优先级,方便管理或使用系统资源(代码/数据占用空间,中断服务程序的调用,定时器使用等等),从而减小开发人员对硬件资源熟悉程度的依赖性。

二、CCS的安装及使用概述 包括以下内容: CCS的安装与设置。 CCS的使用概述

1. CCS的安装 将CCS安装光盘放入CDROM驱动器中,运行光盘根目录下的setup.exe,按照安装向导的提示将CCS安装到硬盘中,默认安装目录为c:\ti。 安装完成后,在计算机桌面上创建“CCS 2 (‘C5000)”“Setup CCS 2 (’C5000)”两个图标。

CCS安装完成之后,在第一次运行CCS软件之前必须运行CCS设置程序。 CCS中集成了TI DSP的Simulator和Emulator的驱动程序,用户可以根据需要有选择的进行设置。 当使用其它公司的DSP产品时,需要索取并安装相应的驱动程序。

2. CCS的文件组织 CCS安装完成之后,将在ccs安装目录下建立以下子目录: bin:应用程序目录 c5400\cgtools:ti代码产生工具目录 c5400\example:源代码例子目录 c5400\rtdx:实时数据交换文件目录 c5400\tutorial:ccs程序使用教程目录 cc\bin:ccs环境的程序文件目录 cc\gel:ccs中使用的gel文件目录 docs:存放ccs的相关说明文档 myprojects:可以存放用户的工程设计文档

3. CCS中的文件类型 project.mak:CCS1.2中使用的工程文件 project.pjt:CCS2.0之后使用的工程文件 program.c: c程序源文件 program.asm:asm源文件 filename.h: c程序和DSP/BIOS API头文件 filename.lib:库文件 project.cmd:链接命令文件 program.obj:编译或汇编产生的目标文件 program.out:可执行的程序文件 program.wks:用于保存环境设置的工作文件 program.cdb:配置数据库文件

4. CCS的启动 双击桌面上的CCS 2 (‘C5000)图标,运行CCS程序。 如果在CCS中有多项配置,将会出现并行调试管理器窗口(Parallel Debug Manager),在Open下拉菜单下,选择程序。

打开配置窗口

添加自己的配置

复位目标板

5. CCS的使用 使用CCS开发程序的一般步骤: (1) 打开或创建一个工程文件,包括源程序、目标文件、库文件、链接命令文件和头文件。 (2) 编辑各类文件,如头文件、命令文件和源程序。 (3) 对工程文件进行编译,如有错误则需要改正。 (4) 对程序进行调试,对计算结果、输出数据进行分析,评估算法性能。

创建、打开和关闭工程 Project→New:用于创建一个新的工程文件 Project→Open:用于打开一个已有的工程文件 Project→Close:用于关闭当前的工程文件

在工程中添加/删除文件 用命令Project →Add File to Project,在对话窗口中选择需要的源程序和需要的文件 在工程视图窗口单击鼠标右键,在弹出的菜单中选择Move from Project,可以从工程中删除文件 源文件、链接命令文件、库文件需要用户指定加入,头文件可以通过扫描相关性(Scan All Dependencies)自动加入到工程中

扫描相关联性文件 使用命令Project →Show Dependecies或Project →Scan All Dependecies创建相关文件 在源文件中以“#include ”、 “.include”、 “ .copy”、 “.h”标识的文件被自动加入到工程中

编辑源程序 File → New→ Source File:弹出编辑窗口进行编辑 CCS下可以编辑任何文本文件,可以打开多个窗口 可以在其它的编辑环境下先对源程序或链接命令文件进行编辑

构建工程 当工程所需文件完成之后,就可以对工程进行编译链接,生成可执行文件,为调试作准备 构建工程有4条命令: 编译文件:Project → Compile File 构建:Project → Build 重新构建:Project → Rebuild 停止构建:Project → Stop Build 上述四条命令也可以通过单击工程工具条的相应按钮来实现 编译器所用参数可以通过Project →Option菜单设置

程序调试 一般调试步骤: 调入编译成功的可执行程序 在程序需要的地方设置断点 执行程序停在断点处,查看寄存器或内存单元的值,对中间数据进行分析 如果需要的话,对程序进行修改 反复上述过程,直至程序达到预期的功能

调入可执行程序 使用命令File →Load Program载入编译链接好的可执行程序(.out文件) 也可以修改“Program Load”属性,使构建工程后自动装入可执行程序。设置方法为选择命令Option →Program Load

使用反汇编工具 使用反汇编工具查看汇编级的程序 当源程序是C代码时,可以选择使用c和asm的混合显示或纯汇编代码的显示模式 方法:View →Mixed Source/Asm

程序的执行控制—复位目标板 Reset DSP:Debug →Reset CPU 初始化所有的寄存器内容,并暂停程序的运行。 复位目标板的方法 Reset DSP:Debug →Reset CPU 初始化所有的寄存器内容,并暂停程序的运行。 Restart:Debug →Restart 将pc恢复到当前载入程序的入口地址。 Go Main: Debug→Go Main PC指向主程序入口。

程序的执行控制—执行程序 执行程序的4种命令: Debug→ Run:运行程序,直到遇到断点为止 Debug→ Halt :暂停程序的执行 Debug→ Animate:动画执行程序 Debug→ Run Free :全速运行程序,禁止所有断点 注意:在仿真器中,Run Free 命令无效 4种单步执行命令: 单步进入:Debug →Step Into(快捷键F8) 单步执行:Debug →Step Over(快捷键F10) 单步跳出:Debug →Step Out (SHIFT+F7) 执行到当前光标处: Debug →Run to Cursor (快捷键Ctrl+F10)

程序的执行控制— 断点操作 软件断点设置 使用断点对话框:使用命令 Debug →Break points 弹出对话框 采用工程工具条:将光标移到需设置断点的语句上,单击设置断点按钮设置断点 断点删除 在设置断点对话框中选中列表中一个断点,单击Delete按钮可删除断点。 允许和禁止断点 在设置断点对话框中单击Enable all 或Disable all 将允许或禁止所有断点。 硬件断点:用于在Rom存储器中设置断点或读写内存时产生中断

程序的执行控制—内存、寄存器和变量操作 内存块操作:包括拷贝数据块和填充数据块,主要用于数据初始化。 查看编辑内存:View memory 查看CPU寄存器:View CPU Register 编辑变量:Edit →Edit Variable 通过观察窗口查看变量。 删除观察变量。 观察数组或结构变量。

程序的执行控制—其他操作 变量显示格式 数据输入与结果分析 装入保存数据 文件输入/输出 数据文件格式 利用图形窗口分析数据 评估代码性能 测量时钟

三、DSP集成开发环境 Code Composer Studio 开发指南

主要内容 (一)、CCS的初步使用 1、打开一个已有的工程,并进行编译、链接和执行。 2、新工程的建立、设置、编译链接和执行。 3、工程的基本调试。 (二)、CCS的高级使用 断点和观察窗口的使用、探针与文件I/O的使用、图形显示窗口的使用以及代码的执行统计。 (三)、Code Composer Studio 开发例程。 (四)、Code Composer Studio深入学习和使用

(一)、CCS的初步使用

1、打开已有的工程并进行编译链接和运行 Project-Open:打开工程tutorial\hello1\hello.pjt 。 在工程窗口中,展开source项,双击hello.c察看源文件内容。 Project-Rebuild All对当前工程进行编译,编译结果应该是0 Errors, 0 Warnings, 0 Remarks。

File-Load Program打开装载程序窗口,装入tutorial\\hello1\debug\hello.out可执行文件。 Debug-Go main 将程序指针指向main函数入口。 Debug-Run(或按F5键)运行程序,在stdout 输出窗口应显示hello world! Debug-Restart 重新将程序指针指向main函数入口,并运行程序。

2. 建立新工程,并设置、编译链接和执行 在myproject目录下,使用project-new建立一个新的工程hello.pjt ,键入工程名称,生成相应名称的子目录及工程文件。 将tutorial\hello1\ 目录下的文件除了hello.pjt工程文件之外全部拷贝到目录myproject\hello\ 下面。 往工程中添加文件 在工程栏中,在工程的名字上单击鼠标右键,或在工程project菜单中,选中 Add Files to Project,往工程中添加文件。

一般地,需要往工程中手动添加以下几种文件: .c C程序源文件 .asm 汇编程序源文件 .lib 库文件 .cmd 链接命令文件 .h 头文件 使用project—Scan All File Dependencies 由CCS集成开发环境自动添加 .H头文件,但需要在编译选项中正确设置include搜索路径。 设置编译链接选项(Build Options): 在工程栏中,在工程的名字上单击鼠标右键,或在工程project菜单中,选中 Build Options,设置编译链接选项。

Build Options主要需要设置几个地方: Compiler—Preprocessor—Include Search Path,include 文件搜索路径,可以使用绝对路径,也可以使用相对路径来进行定义。假设一个自定义工程在myproject目录下,则文件搜索路径可定义为..\..\c5400\dsk5402\include。 Link—Basic—Include Libraries(-l) 定义链接库文件,输入rts.lib(运行时链接库)即可。   根据需要设置其它选项,例如.out文件和.map文件的输出路径和名称。

Rebuid All 对工程进行编译链接,产生用于调试执行的.out文件 在Build窗口中提示编译链接的过程、错误和结果,如果有错误则需要改正错误之后重新对工程进行编译链接。双击错误提示可以自动进行错误定位。 当Build窗口中提示 0 Errors, 0 Warnings, 0 Remarks 时,说明工程已经成功进行了编译链接。 装载程序(load program)myproject\hello\debug\hello.out

Debug-Go Main 将程序指针指向main函数入口 Debug-Run(或按F5键)运行程序。 Debug-Halt暂停程序运行。 Debug-Restart 重新将程序指针指向main函数入口,并运行程序。

3. 工程的调试 Load Program,装载程序 将工程正确Build后,需要把 .out 文件装入DSP目标板进行调试 Debug-Go Main 将程序指针指向main函数入口 Debug -Run(或按F5键)断点运行程序 Debug -Run Free 全速运行程序 Debug -Animate 动画运行程序 Debug -Halt 停止运行程序

单步运行程序 Step Into、Step Out、Step Over。 断点(Breakpoints)的设置与使用 快捷图标 。 变量察看(View—Watch Window)。遇到断点程序停止执行后,可以使用变量观察窗口察看变量。

(二)、CCS的高级使用

包括以下内容: 1、各种观察窗口的使用 2、探针与文件I/O的使用 3、图形显示窗口的使用 4、代码的执行统计

1. 准备工作 打开工程tutorial\volume1\volume.pjt 进行编译链接(Build All) 装载程序(Load Program) Debug—Go Main指向main函数的入口

2. 各种观察窗口的使用 View—Disassembly反汇编察看窗口。 View—Memory程序存储器、数据存储器、I/O空间数据观察窗口。 View—Registers—Cpu Registers cpu寄存器观察窗口。 View—Registers—Peripheral Reg 片上外设寄存器观察窗口。 View—Graph—Time/Frequency 时域/频域图形观察窗口。 View—Mixed Source/ASM 察看源程序/汇编程序混合显示窗口。

CCS的各种观察窗口

3. 探测点(探针)与文件I/O的使用 探测点(Probe point)与文件I/O的关系。 文件I/O使用探测点来停止当前程序的执行。 设置程序探测点时注意以下两点: 不要将探测点设置在任何延迟分支或调用指令的地方。 不要将探测点设置在重复的块指令倒数1、2行指令的地方。 文件I/O不支持实时数据交换。如果要进行实时数据交换,应使用RTDX功能。

探测点的设置与删除 将光标移动到需要设置探测点的代码行。 单击图标 设置探测点,在代码行前出现蓝色小菱形。 将光标移动到需要删除探测点的代码行。 单击图标 探测点将被删除。 利用探测点来观察CPU寄存器的值。 设置探测点。 在Break/Probe point 窗口中Probe point选项下的Connect栏中选择C54X Registers <Type0>选项,然后单击确定按钮。 View Cpu Registers

I/O文件的格式 CCS数据文件格式:头信息+数据。 头信息: MagicNumber Format StartingAddress PageNum Length MagicNumber:固定为1651。 Format:1-4,数据存储格式,是十六进制数、整数、长整数、浮点数中的一种。 StartingAddress:数据存放的起始地址。 PageNum:页码,指明数据所在的数据页。 Length:数据的长度,以word来表示。 头信息一般缺省为1651 1 0 0 0。这时,可以在弹出的文件I/O对话框中输入起始地址和数据长度,输入的信息将自动替换数据文件的头信息。

数据文件举例sine.dat: 1651 1 0 1 0 0x0000 0x000f 0x001e 0x002d 0x003a 0x0046 ……

设置PC数据文件与探测点相关联 设置探测点 。 执行File — File I/O菜单命令。 设置探测点 。 执行File — File I/O菜单命令。 在File I/O对话框中,在文件输入栏单击 按钮打开sine.dat。 在Address栏中输入inp_buffer,在length栏中输入0x100。 单击 按钮。 首先在probe point栏中选中要关联的探测点。 其次在Connect栏,从列表中选择sine.dat文件。 单击Replace按钮,Probe Point列表中显示探测点与文件sine.dat相关联。

4. 设置图形显示窗口 观察时域波形: View—Graph→Time/Frequency弹出Graph Property对话框。 可以更改图形显示的标题、起始地址、缓冲区大小、显示数据大小、DSP数据类型等选项。 单击OK,出现波形的图形窗口。 在图形窗口中单击鼠标右键,在弹出菜单中选择Clear Display,清除已有的图形。 在图形窗口中可同时显示输入输出信号的时域波形显示类型为Dual Time,除了起始地址不同外,其它参数均相同。

5.   程序的动画执行 在代码行设置探测点。 同时在代码行设置断点,该行同时有红色小圆点和蓝色小菱形。这可以使程序暂停执行一次的情况下进行两种操作:传输数据和更新图形窗口显示。 单击Animate图标或按F12键动画执行程序。 当程序执行遇到断点后会临时中断程序的运行,更新图形窗口的显示,并继续执行程序。 可以将Animate命令理解为:运行—中断—继续运行。

6. 改变增益,察看变量的值 View—Watch Window

7. 从文件读入数据到内存 直接将PC机数据文件装载到DSP目标系统的内存: File→Data→Load,打开文件sine.dat。 7. 从文件读入数据到内存 直接将PC机数据文件装载到DSP目标系统的内存: File→Data→Load,打开文件sine.dat。 弹出Load File Into Memory对话框,修改Address栏、Length栏、Page栏,单击OK按钮。 View→Memory 观察内存中inp_buffer中的数据。 Data→Save ,可将程序运行的结果保存到文件。

(三)Code Composer Studio 开发例程

适用对象: CCS 初学者 功能: 在CCS IDE 中开发一个简单的应用程序。 目标: 学习如何建立一个工程 学习基本调试技术 工程名称:tutorial\target\volume1\volume1

学习内容 新建一个工程(project) ■向工程中添加文件 ■浏览代码 编译和运行程序 ■利用编译选项对话框改变编译选项 ■使用编译器确定并改正代码错误 基本调试技术 ■断点(breakpoints) ■观察窗口(watch windows) ■文件I/O

新建一个新工程 1、在CCS中的Project 菜单,选择 New。

新建一个新工程(续) 2.在Location域中,浏览并确定建立工程所使用的文件夹。 3. 在Project Name域中,键入工程名称volume1,CCS自动在 c:\ti\myprojects中建立文件夹 volume1以及volume1.pjt文件 4.在Project Type域中,选择Executable (.out)。 5.在Target域中,选择CCS配置的目标,并单击完成。 6. 将c:\ti\tutorial\volume1拷贝到c:\ti\myprojects\volume1。

向工程中添加文件 1、从Project  Add Files to Project,在Files of type对话框中,选择C Source Files (*.c ;*.ccc)。选择 volume.c ,单击 Open。(或右击Project View图标,选择Add Files to Project ) 2.选择Project  Add Files to Project,在Files of type对话框中,选择Asm Source Files (*.a*, *.s*)。选择vectors.asm 和 load.asm, 单击Open。 3.选择 Project  Add Files to Project,在Files of type 对话框中选择 Linker Command File (*.cmd) ,选择volume.cmd,单击Open。

4.选择ProjectAdd Files to Project, 定位到编译器的库文件夹(C:\ti\c5400\cgtools\lib),在Files of type对话框中选择Object and Library Files (*.o*, *.lib)。选择DSP 运行时支持库文件rts.lib,单击Open。 5、Project View窗口,右键单击volume1.pjt,选择Scan All Dependencies. volume.h将出现在Project View窗口中的Libraries文件夹。 6、 单击 volume1.pjt上的 + 号,展开工程列表。 这个列表称为工程视图(Project View).

Project view

查看源程序代码 双击Project View中 volume.c文件,CCS窗口的右半窗中出现C源代码。 volume.c 简介: 主程序打印一个信息,然后进入无限循环。在这个循环中,调用dataIO和处理函数。 在输入缓冲区中,处理函数将每个值乘以增益,并将结果放到输出缓冲区。它也调用汇编装载程序,此程序消耗了传递到子程序的processingLoad个指令周期。 例子中的dataIO函数不作任何处理,仅仅返回。文件I/O功能不使用C代码完成,而是使用CCS中的探测点(Probe Point),从主机的文件中读取数据到 inp_buffer缓冲区。

编译与运行程序 1.选择Project Rebuild All或单击 (Rebuild All)菜单条按钮,CCS重新进行编译、汇编、链接工程里的所有文件。处理结果在窗口底部一个小框里显示。 2.默认时,.out文件编译到当前工程文件夹中的调试(debug)子目录中;也可以通过CCS工具条选择一个存储目录。 3.选择File  Load Program装载程序,选中volume1.out,并按Open。(c:\ti\myprojects\volume1\Debug\ 文件夹中) CCS将程序装载到目标DSP上,并打开Disassembly窗口显示程序反汇编指令。 4.选择View/Mixed Source/ASM.  可以同时查看C源程序和对应的汇编代码。

5.在混合窗口单击汇编指令(单击实际的指令,而不是指令的地址或指令所在的区域),按下F1键可以寻找此指令的帮助。 6.选择Debug Go Main。程序指向main函数的入口。 7.选择Debug Run或单击 (Run)按钮运行程序。 8.选择Debug  Halt,退出程序运行。 9. 从View菜单,选择Mixed Source/ASM。这样就可以看到没有汇编指令的C代码。

更改程序选择,定位语法错误 本节学习使用CCS设置预处理器选择,并纠正语法错误。 1.选择Project Build Options. 2.在Build Options窗口的Compiler上,选择Category列表的 Preprocessor,在Define Symbols区域键入FILEIO,按Tab键。 3.单击OK,保存设置。

Build Options for Volume1.pjt

4.选择Project  Rebuild All或单击 (Rebuild All)按钮。 只要工程选项更改,则必须重新编译所有的文件。 5. 编译信息显示,程序包含编译错误。 单击Build,你可以看见语法错误信息。

6.   双击描述语法错误位置的红色文字(第68行) 注意volume.c源程序已打开,且光标定位于下面的行: processing(input, output); 7. 语法错误位于光标位置的上一行(分号丢失),如: puts("begin processing"); 8.注意, Edit窗口标题栏中的文件名附近出现星号(*),指示 源程序已经被修改,文件保存后,星号消失。 9.选择File  Save,或按Ctrl+S,将更改保存到volume.c.

10.选择Project  Build,或 (Incremental Build)单击工具条,CCS重新编译已经修改的文件。 11.选择File  Load Program, 选中volume1.out装载程序。 12.选择Debug  Go Main,程序指向main函数的入口。执行暂停在主程序,并且由 符号标识。 13.选择Debug  Run或单击 (Run)菜单条运行程序。 14.选择 Debug  Halt,退出程序运行。

使用断点和观察窗口 程序执行时常常需要检查变量的值 1. File  Reload Program.重新装载程序。 2、双击Project View 窗中的volume.c观察源程序代码。 可以将窗口变大,看到更多的源代码。 3、将光标放在 dataIO( )程序行。 4、单击 (Toggle Breakpoint)工具条,或按F9设置断点。 代码左侧空白区的红色图标指示断点已经设置。

5.选择View  Watch Window打开变量观察窗口,用于观察程序运行时变量的值。 缺省时选中Watch Locals,显示正在执行的函数的局部变量。 6. 如果不在主程序的入口,选择Debug Go Main. 7.选择Debug/Run,或按F5,或单击图标 运行程序。 8 . 选择Watch1 9. 单击Name栏中表达式图标 ,键入要观察的变量名dataIO。 10. 单击观察窗口中的白色区域,保存更改。 这个值将立即出现在下面的例子中。

11. 单击 (Step Over)或按F10,跨过对dataIO( )的调用。 Step Into (F8) Step Over (F10) Step Out (Shift F7) Run to Cursor (Ctrl F10) 12. 完成后,单击 移除所有的断点,再继续下面的学习。

使用带结构的观察窗口 除了观察简单变量的值,也可以观察一个结构变量的值。 1. 选择Watch1 。 2. 单击Name栏中的表达式图标 ,键入要观察表达式名称str。 3. 单击观察窗口中的白色空间,保存更改。 数值将立即出现在下面的例子中。

4. 重新浏览源代码volume.c,在其中声明并初始化了全局结构变量PARMS。在volume.h中定义了PARMS的结构类型。 5. 单击str上的+号,CCS将显示结构中的所有元素和元素值。 双击结构中元素的Value,编辑元素的值。 6. 在观察窗口的Value栏,改变变量的值。注意,观察窗口的变量值更改后,数值也变为红色,表示已经手动修改。 7. 选择Watch Window 中str变量,按Delete 键删除。同样可删 除其它变量。 8. 选择Debug  Breakpoints。 在Breakpoints中,单击Delete All删除所有断点,然后单击OK。

为了文件I/O添加探针Probe Point 探针(Probe Point)用于与PC机中的文件交换数据。探针是算法开发的有利工具。 探针的使用方式: 将主计算机文件中的输入数据,传递到算法所使用的目标缓冲器中; 将目标缓冲器中的输出数据,传递到PC机的文件中; 用数据更新窗口,例如图形窗口。

探针的使用 使用探针将PC文件中的内容作为测试数据传递到目标DSP。 1. 选择File  Load Program,选中volume1.out,单击Open。 2. 双击Project View中的 volume.c 。 3. 将光标放到主程序中dataIO( )程序行; 4.单击 (Toggle Probe Point)。 空白区域用兰色图标指示探针已经设置,如果禁止了空白 区(Option  Customize  Editor Properties) ,此行将高亮为兰色。 5.从File菜单,选择File I/O。 出现File I/O对话框,可以继续选择输入、输出文件。

6. 在File Input栏,单击Add File。 7. 浏览volume1工程文件夹,选中sine.dat,单击Open。 sine.dat 文件是正弦波的十六进制数据文件。 出现sine.dat文件的控制窗口。当以后运行程序时,可以在 数据文件中使用此窗口启动、停止、返回、或快进。

8. 在File I/O对话框,更改Address 为inp_buffer,Length为100, 在Wrap Around中可以添加选中符号。

Address指定从文件中来的数据将放在什么地方。inp_buffer 在volume.c中声明为大小为BUFSIZE的整型数组。 Length指定每次到达探测点时从数据文件中读取多少样点。这里取100,因为volume.h中设置BUFSIZE常量为0x64。 Wrap Around选项使CCS到达文件末尾时,重新从文件开始处读取数据。这允许数据文件成为连续的数据流。 9. 单击Add Probe Point。 出现 Break/Probe Points对话框中的 Probe Points。

10. 在 Probe Point列表中,显亮行为: VOLUME.C line 61 --> No Connection. 11. 在Connect To域中,单击下箭头,从列表中选中 sine.dat 。

12. 单击 Replace按钮,Probe Point列表显示此Probe Point连接到sine.dat文件。 13. 单击OK。 File I/O 对话框显示文件sine.dat现在连接到Probe Point。 14. 单击OK,关闭File I/O对话框。

显示图形 在这个例子中,可以查看关于时间的信号图形。 1. 选择View  Graph  Time/Frequency。 2. 在 Graph Property Dialog对话框,更改Graph Title, Start Address, Acquisition Buffer Size, Display Data Size, DSP Data Type, Autoscale, 和 Maximum Y-value属性,下拉或重新拉大对话框,查看所有属性。 3. 单击OK。 出现Input Buffer的Input图形窗口。

4. 右击Input graph窗口,从下拉菜单中选择Clear Display。 5. 再次选择View  Graph  Time/Frequency。 6. 这次更改Graph Title为Output,Start Address 为out_buffer,所有其他设置都不变。 7. 单击OK,显示输出图形Output graph窗口,右击Output graph 窗口,从下拉菜单中选择Clear Display。

程序的动画执行 至此,已经放置断点,将主机中的数据传递到目标DSP; 可暂停或继续目标DSP 的应用程序。但是,Probe Point不修改图形。 本节使用断点和探针,配合 Animate命令,使程序遇到断点后继续自动执行,同时动态更新图形显示窗口。 1. 在volume.c窗口,将光标放在调用dataIO的行上。 2. 单击 (Toggle Breakpoint)或按F9,在空白区域显示红色 图标代表断点。 在同一行设置探测点Probe Point,这样传递数据和修改图形时目标程序只需暂停一次。

3. 调整窗口,使两个窗口都可以看见。 4. 单击 (Animate),或按F12运行程序。 Animate=Run—halt — continue 5. 每遇到探测点Probe Point一次,CCS就从sine.dat文件获得100个数值,并将它们写入inp_buffer地址。

增益 Gain=1

6. 选择Debug/Halt,退出程序运行。 注意:目标DSP 在探测点暂停。CCS遇到探测点时,暂停目标。因此,如果使用探测点,目标应用程序不能满足实时要求。在开发阶段,你可以检测算法,然后可以使用RTDX和DSP/BIOS 分析实时特性。

调整增益Gain 处理函数将输入缓冲区中的每个值乘以增益,并将结果放在 输出缓冲区。在while循环中执行下面的语句。 *output++ = *input++ * gain; 这个语句将inp_buffer中的数值乘以增益,并将结果放在out_buffer中相应的位置。增益初始化设置在定义在头文件volume.h中的MINGAIN符号常量 。 如果修改输出,则需要修改增益。方法之一是使用观察变量。

1. 选择View/Watch Window,选中Watch1 。 2. 单击Name栏中的表达式图标 ,键入gain ,作为观察的变量。 3. 单击观察窗口中的白色空间,保存更改。 在下面的例子中将立即出现这个数值。

4. 如果程序已经暂停,单击 (Animate),重新启动程序, 观察前面建立的输入输出图形。 5. 从Debug菜单,选中Halt。 6. 在观察窗口,选中增益值(1),将其改为10。 7. 从Debug菜单,选中 Animate 。 注意更改 Output graph 中信号幅度,在反映在下面的例子中的增益。

增益 Gain=10

8. 从Debug菜单,选择Halt。 9. 从Project菜单,选择Close。 10. 关闭所有的其他窗口和图形。 至此,开发一个简单的程序全部结束。