包括CCS3.3和CCS5.5两个版本的调试教程。

CCS3.3

3.3教程来自http://zhujlhome.blog.163.com/blog/static/20562109220126103288550/

 

  1. CCS的布局和结构

 

值得一提的是CC3.3和CCS2.2工具栏的区别,CCS2.2工具栏的图如下面所示,

  我们将其和CCS3.3的工具栏比

对之后发现CCS.2中的探针工具已经不在CCS3.3的工具栏中了,这是因为CCS3.3中的断点就包含了探针功能

 

  1. 开始调试程序

 

在编译完成之后,要来下载程序并进行功能调试。"File","Load Program",在工程文件夹下面的Debug文件夹下,选中**.out文件,点击打开,便开始下载程序了。将**.out文件下载到目标板上2812的RAM中。

注意,这里是调试,所以将程序下载到RAM。等到最后您要固化程序的时候,就得下载到FLASH了,因为断电之后,RAM里面所有的数据都会消失。

调试程序常用的一些按钮

Run和Animate的区别,Run是如果遇到断点的话它就停下来了。而Animate就算遇到断点时先停止DSP内核,刷新窗口,然后接着继续启动运行,常用来连续刷新变量窗口和生成graph图形等

1) 如何添加断点

我们调试代码时有时候想看看某一行或者某几行代码是否有执行,或者想看看执行前后变量的一些变化,那么我们就需要在这行或者这几行代码前加上断点了。加上断点的方法很简单,只要在该行代码前双击就行。双击之后,这行代码前面会出现一个红色圆块。另外一种添加断点的方法,就是在刚才的编译工具栏上,点一下那个小手图形的按钮,前提是你要把光标移动到想要设置断点的哪一行上。这时运行Run按钮,程序就会在断点处停下,黄色的小箭头又出现了。

那如何取消断点呢,在刚刚设置断点的那行再双击一下,代表断点的红色标记就消失了,断点也就被取消了。如果想要清除文件内的所有断点,那么我们可以按一下刚才小手按钮旁边的那个打了叉叉的小手按钮"Debug:Remove all breakpoints"。

 

2) 单步调试

让我们来了解一下CCS给我们提供的调试工具吧。调试工具栏上分两类,一类是用于在源代码中调试的,另一类是用于在汇编代码中调试的。

---Source-single step 源代码单步调试了,就是按一下,走一步的模式。

---Source-step over   这个按钮是指在单步执行时,如果在函数内遇到子函数,那么不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。

---Source-step out   当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。

用于汇编调试的两个工具Assembly-single step和Assembly-step over含义和上面源文件调试的两个类似,就不再重复叙述了。

3) 使用watch window

Watch window的作用是来观察程序运行过程中的各个变量的值。调用watch window的方法是点击菜单栏的"View ","watch window",这时watch window就会显示在CCS下方的信息区域,如下图所示:

如果想观察某个特定的变量,在代码中选中这个变量,然后右键"Add to watch window"

4)其他一些

我们在调试程序的时候经常想让程序从Main函数开使运行,点击"Debug"--"Go main"。 既能看到源文件中代码的执行情况,又能看到汇编指令的执行情况----"View","Mixed Source/Asm"

我们看到,每一行源代码下面就会有相应的汇编代码,黄色的指针指示源代码,绿色的指针指示汇编代码。如果要取消源代码和汇编代码在一个文件内的话,重复刚才的操作就可以了。

  1. 统计代码运行时间

在CCS3.3中如何统计代码的运行时间,首先,将代码的阅览模式设置成前面的源码和汇编同时显示的模式。

点击"Profile"--"Clock"--"Enable",来使能CLOCK功能。接下来点击"Profile"--"Clock"--"View",在CCS最下面会出现一个类似于秒表的工具,旁边显示数字"0"。

我们关注main函数这一块,在代码"int *input = &inp_buffer[0];"前面设置断点,然后点击Run,这样程序就会停在这一行代码前面,而且黄色指针指示源码,绿色指针指向汇编。

这时,底下的CLOCK工具开始显示的是753,当然不同的环境显示的数字应该是不一样的。这就是从开始执行到这一语句所花的时间了,那753的单位是"CPU Cycles",CPU的时钟周期。

统计汇编指令的执行时间,点击一下Assembly-single step。汇编指令下移一行,CLOCK工具显示754,也就是刚才这句代码执行了1个CC。统计执行一段代码所花的时间,在需要统计的那段代码开始和结束的地方分别设置断点,如下图所示。

将两个地方的CLOCK工具显示的值相减就能得到这一段代码的执行时间了。

 

 

  1. 如何使用CCS3.3来显示图表?

CCS3.3的探针功能使用:首先设置断点,点击breakpoint manager按钮(中间有个红色圆),出现窗口

选择"Action"下的"read from File"

出现并设置以下窗口

同时我们还可看到。这个是用来控制数据输入的停止和开始,便于观测正弦图形的输出然后就是选择图形菜单观察了

设置输入输出地址等参数

点击"Animate"开始仿真,就能看到我们想要的图像了   

 

 

CCS5.5

变化很大,对照着3.3的调试教程尝试着写一下教程

  1. CCS5.5的布局和结构

Edit模式

右上角可以改变模式为Debug模式,进入Debug模式后菜单栏会有变化。

Debug模式

 

进入Debug

打开各种需要的窗口

  1. 开始调试程序

完成之后,Debug窗口

 

 

 

添加断点

方法和3.3一样

调试

  • step into就是单步执行,遇到子函数就进入并且继续单步执行;(F5)
  • step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。(F6)
  • step return就是单步执行到子函数内时,用step return就可以执行完子函数余下部分,并返回到上一层函数。(F7)

step into:进入子函数

step over:越过子函数,但子函数会执行

step return:跳出子函数

使用Watch Expression

选中变量,右击选择Add Watch Expression

其它

上电顺序不正确可能导致CCS连接不上板子,

可以尝试这个顺序:

  1. 板子上点
  2. 插上jtag
  3. 连接仿真器和电脑的USB接口

CCS调试教程的更多相关文章

  1. IntelliJ远程调试教程

    概述 对于分布式系统的调试不知道大家有什么好的方法.对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时.今天咱们来了解了解Java远程调试这个牛逼的 ...

  2. 【转】iOS开发Xcode7真机调试教程

    原文网址:https://www.skyfox.org/ios-xcode7-debug-device.html 从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 ...

  3. Chrome浏览器及调试教程

    ==>(微信公众号:IT知更鸟)欢迎关注<^>@<^> Chrome浏览器及调试教程 在web开发过程中,我们在写JavaScript脚本时难免会遇到各种bug,这时,我 ...

  4. 使用CCS调试基于AM335X的SPL、Uboot(原创)

    使用CCS调试基于AM335X的SPL.Uboot 一.开发环境 1.硬件平台:创龙AM3359核心板 2.SDK版本:ti-processor-sdk-linux-am335x-evm-03.00. ...

  5. 4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)

    4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程) (2016-02-01 03:21:06) 转载▼ 标签: delphi ios delphi10 教程 编程 分类: 编程 ...

  6. Idea IntelliJ远程调试教程

    总结 第一步:修改startup.sh 在倒第二行加上export JPDA_ADDRESS=8787 最后一行在start前面加上"   jpda   " 第二步:配置Idea, ...

  7. Android Studio连接手机调试教程已决解

    Android Studio连接手机调试教程 Windows电脑连接安卓手机需要下载安装驱动,确保电脑联上网络. 准备条件: 1.电脑上安装应用宝软件. 2.手机开发者选项里面打开USB调试,USB安 ...

  8. RASP | 远程Java应用的RASP调试教程

    远程Java应用的RASP调试教程 介绍 Java RASP是基于Java Agent技术实现的,而Java Agent代码无法独立启动,必须依赖于一个Java运行时程序才能运行. 如何调试一个Jav ...

  9. Code blocks调试教程

    特别声明:本教程已转移至百度经验:https://jingyan.baidu.com/article/6b182309939a87ba58e159bf.html 一.题外话 之前一直想用Code bl ...

随机推荐

  1. vector,list.queue,array.....

    vector 这个我们最熟悉了,也可能是我们用的最多的容器之一了. 我们可以用vector来模拟栈,vector的push_back和pop_back效率很高,时间复杂度是常数. 由于他是一个连续的内 ...

  2. Java堆内存不足

    1)使用IDEA开发程序时有时候会提示“Java Heap space error”,说明IDEA默认配置的Java堆内存不足,程序需要更多的堆内存. 2)堆(Heap)和非堆(Non-heap)内存 ...

  3. dubbo安装(转载)

    1.   概述 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂 ...

  4. INLINE-BLOCK和FLOAT(二)(转)

    一.一抹前言 没有爱的日子,时间如指尖细沙,不知不觉就流逝了.写“CSS float浮动的深入研究.详解及拓展(一)”和“CSS float浮动的深入研究.详解及拓展(二)”似乎就在不久前,然而相隔差 ...

  5. hadoop InputFormat getSplits

    /** Splits files returned by {@link #listStatus(JobConf)} when * they're too big.*/ public InputSpli ...

  6. FTTB FTTC FTTH FTTO FSA

    FTTB Fiber to The Building 光纤到楼 FTTC Fiber to The Curb 光纤到路边 FTTH Fiber to The Home 光纤到家 FTTO Fiber ...

  7. javascript 定时器 笔记

    最近想看下定时器,发现这东西越看越牵连的东西越多,比如js单线程,EVent loop 什么的 看到了几篇比较好的文章 http://ejohn.org/blog/how-javascript-tim ...

  8. CentOS release 6.6 (Final)如何安装firefox和chromium

    一.firefox的安装: 1. 安装remi源 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8 ...

  9. ColorSchemer Studio 2 破解

    软件介绍: ColorSchemer Studio 2 is a professional color matching application for anyone from hobbyists t ...

  10. $ gulp watch 运行出错解决方法

    $ gulp watch 运行出错解决方法   $ gulp watch     如果你出现了如下报错信息: gulp-notify: [Laravel Elixir] Browserify Fail ...