CCS查看DSP程序运行时间
CCS常用操作(完整版)

第3课CCS的常用操作作者:顾卫钢同学们,大家好,第3课终于姗姗来迟了,大家都等急了吧,实在不好意思。
今天我们要一起来学习的是CCS的一些常用操作,虽然只是一个课时的时间,但是通过本节课内容的学习,我相信您大概能够掌握用CCS对DSP进行开发时所需要的一些必备的知识。
中国有句古话叫“磨刀不误砍柴工”,如果您将CCS这把常用的利刃磨锋利了,那么我相信为您的DSP开发过程节省不少的工夫。
在上节课的学习过程中,其实大家应该已经学会了如何配置CCS Setup,如何在CCS中打开一个工程,如何在工程中移除或者添加文件,如何创建一个新的工程。
那么这些作为您已经具有的知识,我们不再重复讲述了,下面将为您介绍在CCS中如何编译程序,如何调试程序,如何统计代码执行的时间等内容。
今天所用到的工程“volume1.rar”在附件中,这个其实是CCS自带的一个例程,我们只是对其稍微做了些修改。
如果您目前还没有仿真器和开发板,那么只能做一些软仿真的工作,请将您的CCS Setup中的system configuration栏内的My System设置成“F2812 Device Simulator”。
如果您已经有了硬件工具,那么您可以根据各家公司相应的510仿真器的配置信息进行配置。
1.了解CCS的布局和结构上节课已经为大家介绍过目前CCS的各个版本了,现有的资料中很少对CCS3.3版本进行介绍的,所以我们今天主要针对CCS3.3给大家详细介绍,其他的版本您可以参看现有的一些资料,在我们网站上就有很多,大家可以自行下载研究。
首先让我们来了解一下CCS3.3打开时的界面,以及它的布局和结构。
在上面的图中我们可以通过各个工具栏或者窗口的名称就能大概知道这些工具或者区域的功能了。
菜单栏——和CCS所有功能相关的菜单都在这里面。
编译工具栏——编译程序时常用的一些工具。
调试工具栏——调试程序时常用的一些工具。
工程文件框——打开的工程所有文件会按类别放在这里,便于我们编程时在各个文件之间的切换。
DSPCCS初学调试问题汇总(更新中)

DSPCCS初学调试问题汇总(更新中)1.DSP/BIOS应用程序调试(2022.10.20)这将导致RTD某(实时数据交换)不能使用分析:把DSP/BIOS配置窗口中的input/output-->RTD某-real-TimeE某changeetting的RTD某mode改为JTAG(原来是imulator),重新编译后LOAD,上述警告消除,可以在模拟的情况下进行BIOS调试了。
PS:虽然imulator能编译运行DSP/BIOS程序,并能提供实时查询程序运行情况(主要是CPU负荷,时序,日志以及线程等)。
但实际开发DSP/BIOS应用程序时为了真实的了解目标板的各种信息,仅有Simulator(软件仿真器)是不行的,还需要使用Emulator(硬件仿真器)和DSP/BIOS插件(安装时已装入)。
2.RTD某应用程序调试(10.22)RTD某测试DSPTarget传输数据到PC机:a)创建工程,编辑源代码(.c/。
am),加入头文件(.h),库文件(.lib)以及链接命令文件(.cmd)b)添加修改具有实时数据传输的RTD某语句包括:#include<rtd 某.h>;RTD某头文件(rtd某.h)RTD某_CreateOutputChannel(ochan);定义一个全局的PC机数据输出通道,通道名可以任取TARGET——INITIALIZE();初始化DSP目标系统;RTD某_enableOutput(&ochan);使能输出通道写数据;tatu=RTD某_write(&ochan,&data,izeof(data));传送数据至PC;RTD某_diableOutput(&ochan);禁止输出通道传输数据。
c)进行数据处理,测试应用程序Can'tSetBreakpoint:Error0某00000008/-1076Errorduring:BreakPoint,Cannotet/verifybreakpointat0某80007958BreakpointManager:Anerrorwaencounteredattemptingtoetabre akpointuedforendofprogramdetection.Can'tSetBreakpoint:Error0某00000008/-1076Errorduring:BreakPoint,Cannotet/verifybreakpointat0某800081B4分析:根据CMD文件确认你的地址分配是否在DSP可分配的RAM 中;如果给程序分配的地址不在片内的RAM段肯定是会出错的。
TIDSP集成开发环境CCS的使用(精)

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使用和调试实验知识讲解

3 北京交通大学 国家工科电工电子教学基地
DSP应用技术
2.1 编译与运行程序
1.选择Project/Rebuild All或单击 (Rebuild All)菜单条按钮, CCS重新进行编辑、汇编、连接工程里的所有文件。
Disassembly窗口。
4 北京交通大学 国家工科电工电子教学基地
DSP应用技术
4.选择View/Mixed Source/ASM. 这样可以同时查看C源程序和产生的汇编代码。
5.在混合窗口单击汇编指令(单击有效指令,而不是指令的地址 或指令所传递的区域),单击F1,CCS可以寻找此指令的帮助。
7. 选择Watch1 8 .单击Name栏中表达式图标 ,键入要观察的变量名dataIO。
16 北京交通大学 国家工科电工电子教学基地
DSP应用技术
9.单击观察窗口中的白色区域,保存更改。 这个值将立即出现在下面的例子中。
17 北京交通大学 国家工科电工电子教学基地
DSP应用技术
10 .单击 (Step Over)或按F10,跨过对dataIO()的调用。
Step Into (F8) Step Over (F10) Step Out (Shift F7) Run to Cursor (Ctrl F10) 11.完成后,单击 (Remove All Breakpoints),再继续下面的学习。
18 北京交通大学 国家工科电工电子教学基地
DSP应用技术
2.4 使用带结构的Watch Window
TI DSP软件开发工具CCS的使用

CCS代码生 成工具流图
宏 文 件 库 文 档 管 器 理 十 进 六 制 转 程 换 序 十 进 六 制 转 程 换 序 EPROM 编 器 程 绝 列 对 表 序 程
交 应 叉 用 列 程 表 序
'C54x
8
1.3 CCS软件
TI公司耗资近2亿美元
CCS2.0 For C5000系列 CCS2.0 For C6000系列 CCS2.0 For DSK (Developer Start Kit,初学者开发套件) CCS2.1升级包
20
1.3.6 CCS2.0 RTDX(2)
包括Host方和Target方
Target方编程接口 RTDX target API Host方编程接口 RTDX COM API(组件对象模型COM是windows 下一种编程技术)
21
1.3.7 CCS2.0界面(2)
主机方的RTDX库是和CCS集成在一起的 主机一方有一个函数接口,目标方DSP上也有一个 函数接口 主机应用程序通过COM API发送数据到DSP,或接收 数据,应用程序可以按自己的方式来显示数据, RTDX可以脱离DSP/BIOS使用,给用户灵活性 下一张图是一个例子,用LabView作一个显示界面, LabView调用RTDX API得到DSP传来的数据
23
1.3.8 CCS2.0的文件与环境变量
.mak .lib .obj .out .wks (.wks 保存当前CCS中的设置:打开的变量窗口, 显示的图形。方便,快捷。) 可编辑文件:.c .asm .h .cmd (.sa) 三个环境变量:C6X_A_DIR,C6X_C_DIR,PATH
DSP集成开发环境CCS开发指南_部分4

28 11. 点击(Step Over)工具栏按钮或按F10以便执行到所调用的函数fprintf()之后。
12. 用CCS 提供的step 命令试验:■ Step Into (F2)■ Step over (F10)■ Step Out (Shift F7)■ Run to Cursor (Ctrl F10)13. 点击工具栏按钮或按F5运行程序到结束。
292.7 使用观察窗口观察structure 变量观察窗除了观察简单变量的值以外,还可观察结构中各元素元素的值。
1. 在watch Window 区域中点击鼠标右键,并从弹出表中选择Insert NewExpression。
2. 键入str 作为表达式并点击OK。
显示着+str={…}的一行出现在Watch Window中。
+符号表示这是一个结构。
回顾2.3,类型为PARMS 的结构被声明为全局变量,并在hello.c 中初始化。
结构类型在hello.h 中定义。
3. 点击符号+。
CCS 展开这一行,列出该结构的所有元素以及它们的值。
4. 双击结构中的任意元素就可打开该元素的Edit Variable 窗口。
5. 改变变量的值并点击OK。
注意Watch Window 中的值改变了,而且其颜色也相应变化,表明已经该值已经人工修改了。
6. 在Watch Window 中选择str 变量并点击右键,从弹出表中选择Remove CuurentExpression。
在Watch Window 中重复上述步骤。
7. 在Watch Window 中点击右键,从弹出表中选择Hide 可以隐藏观察窗口。
8. 选择Debug→Breakpoits。
在Breakpoints tab 中点击Delete All,然后点击OK,全部断点都被清除。
30 2.8 测算源代码执行时间在本节中,将使用CCS 的profiling 功能来统计标准puts()函数的执行情况,可以把这些结果与3.4节中采用DSP/BIOS API 显示hello world 消息的相应结果相比较。
CCS使用和数据存储实验

实验一 CCS使用和数据存储实验一、实验目的1. 掌握CCS的使用2. 掌握TMS320C54X 程序空间的分配;3. 掌握TMS320C54X 数据空间的分配;4. 能够熟练运用TMS320C54X 数据空间的指令。
二、实验设备计算机,CCS 3.1版软件,DSP仿真器,E300实验箱,DSP-54XP CPU板。
三、实验步骤与内容1. 在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2. E300 底板的开关SW4 的第1位置ON,其余位置OFF。
其余开关设置为OFF。
3. 上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。
4. 运行CCS程序1) 待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电2) 启动CCS3.1,进入CCS界面后,点击“Debug—Connect”3) 此时仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,这时需掉电检查仿真器的连接、JTAG 接口连接是否正确,或检查CCS相关设置是否存在问题。
5. 成功运行CCS 程序后,首先应熟悉CCS的用户界面;6. 学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。
7. 用“Project\open”打开“\normal\ 01_mem\ mem.pjt”.编译并装载“\ 01_mem\Debug\mem.out”8.用“Edit”下拉菜单中的“Memory/Fill”编辑内存单元,参数设置如下图:单击“OK”此时以0x1000 为起始地址的16个内存单元被修改成:0x00099.用“View”下拉菜单“Memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH 单元的数值变化,输入地址0x1000H;单击“OK”如下图所示:10. 点击“Debug\Go main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处施加软件断点。
CCS使用简介

CCS使用简介CCS是Code Composer Studio的缩写,即代码设计工作室,是TI公司推出的集成可视化DSP软件开发环境。
CCS内部集成了以下软件工具:◆DSP程序生成工具(包括C编译器、优化器、汇编器和连接器)◆软件项目开发工具(包括代码编辑、项目建立、在线调试、在线数据观察等工具)◆实时多线程内核DSP/BIOS(使用DSP/BIOS内核能够开发出多线程应用程序)◆RTDX组件(在代码中使用RTDX可以实现DSP程序和PC机之间的数据传输)使用CCS开发者可以对软件进行编辑、编译、调试、代码性能测试和项目管理等工作。
CCS的部分功能有:◆观察和更改DSP系统存储器和寄存器的值;◆用各种图形方式描绘出DSP系统存储器中的连续数据;◆设置断点;◆在断点处自动刷新内存窗口和图形窗口;◆在测试点处使数据在DSP系统存储器和PC机文件之间传递;◆代码性能测试,计算代码段执行所花的CPU时钟周期数;◆反汇编显示,即将DSP系统程序存储器中的值转换为对应的汇编指令来显示;◆使用GEL语言增加一个函数或功能到CCS菜单中来完成用户扩展任务。
用CCS开发DSP程序的基本过程一、建立项目(project)由于CCS是以项目方式来管理DSP应用程序的,所以要在CCS中编译、汇编、连接C 及汇编源文件,首先要创建一个项目,然后再将相关源代码添加到项目中。
⑴双击桌面上的CCS DSK C5000图标打开CCS。
⑵建立新的项目。
选择菜单project→new,在弹出的对话框中为项目输入名称并设置项目文件夹(与项目名称同名)的存放路径。
完成后能够看到项目出现在CCS左侧窗口中,展开项目后发现CCS将项目中所能包含的文件分为四类:DSP/BIOS DSP/BIOS内核相关文件Include 头文件(*.h)Libraries 库文件(*.lib)Source 源代码文件(*.c、*.asm)和连接命令文件(*.cmd)⑶准备源文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CCS查看DSP程序运行时间
2008-09-04 19:35
1.进入CCS环境,装载已有工程,并load生成的.out文件,并找到要察看代码执行周期的代码处。
如图1所示。
图1
1.选择ccs的菜单Profiler中的enable clock,如图所示。
图2
2.选择Profiler菜单下的clock setup子菜单,并在Instruction Cycle中输入你的DSP时钟周期,它的单位为纳秒,例如,2407的系统时钟为40MHz,你就该填入25,如果是2812系统时钟为150MHz,就该填入6.67ns,其他配置不动,然后确定。
如图3所示。
图3
3.选择Profiler菜单下的Start New Session子菜单,出现如图4所示的对话框,可以改名字,也可以不改,本例中不修改,直接确定。
图4
4.通过第四部设定后就出现了如图5所示的一个窗体。
这个窗体中,有四个选项卡,其中Files为以源文件列出统计数据,Functions选项卡用于剖析程序中的函数,Ranges 用于剖析一段连续的代码,Setup用于设置开始点和结束点,用于剖析不连续的代码。
窗体的左边按钮的含义为:(这里介绍主要的)
剖析所有的函数。
建立剖析区域。
设置开始点。
设置结束点。
在窗体中剖析数据有一个表格,用红框圈起来的,每个表格的字段名的含义为:
Code size:剖析代码的大小,以程序存储器最小可寻址单元为单位,此值在剖析过程中不会发生变化。
Incl. Count:在统计过程中,程序运行进入剖析代码段的次数
Incl. Total: 在统计工程中剖析代码段消耗的所有时钟周期(如果是统计时钟周期的话,CCS还可以统计子程序调用等其他计数,统计其他特性则显示相应的值)。
Incl. Maximum: 执行剖析代码段一遍(包括在剖析代码段中对子程序的调用)消耗的最大时钟周期(由于每次进入剖析代码段的初始条件不同等原因,每次运行剖析代码段消耗的时钟周期可能不同);
Incl. Minimum: 执行剖析代码段一遍(包括在剖析代码段中对子程序的调用)消耗的最小时钟周期
Incl. Average: 剖析代码段执行一遍(包括在剖析代码段中对子程序的调用)消耗的平均时钟周期。
--
以上这三个就是用户关心的代码执行的时钟周期。
Excl. Count:在统计过程中,程序运行进入剖析代码段的次数,与Incl.Count的值相同。
Excl. Maximum: 剖析代码段执行一遍(不包括在剖析代码段中对子程序的调用)消耗的最大时钟周期。
Excl. Minimum: 剖析代码段执行一遍(不包括在剖析代码段中对子程序的调用)消耗的最小时钟周期。
Excl. Average: 剖析代码段执行一遍(不包括在剖析代码段中对子程序的调用)消耗的平均时钟周期。
5.以剖析函数为例,找到该函数,然后将光标放在该函数的函数名上,选择建立剖析区域按钮,图中用红框框起来的那个按钮。
如图6所示。
图六。
6.出现对话框,如图7所示,因为我们做的是function,所以不用修改,如果做的是一段代码,只要把下拉菜单里的function改成Range即可。
图7
7.点击OK后出现,如图8所示,各个字段已经被赋予了初值。
图8
8.接下来运行程序RUN,就可以剖析出你所选中的代码的执行周期了。
如图所示。
且这些值是随着程序运行的时间而变化的,动态显示。
图9
值得注意的是,图中显示的是时钟周期,不是时间,要看时间的化,用时钟周期乘以前面设定的时钟周期ns值,如6.67ns,就是最终函数执行的时间了。