装载程序后,默认的配置,会自动打开一个反汇编窗口,你可以设置IDE,直接跳转到main,而不用打开反汇编窗口。

在反汇编窗口中,黄色小箭头指向c_init100,这不是用户代码的一部分,而是C语言引导代码的入口。所有的C语言程序都会在连接时自动加上引导代码。这些代码一般不需要调试,需要调试的是用户代码,因此,要Go main。

Load Symbol:加载符号。可执行程序中,一般都会有个符号表,符号表包含了程序中使用到的各种符号如变量名,函数名等在数据存储器和程序存储器中对应的地址。在程序调试中,开发人员需要查看和修改这些变量的值时,不需要知道他们的具体地址,而只需要给出变量名。CCS会从内部符号表中知道对应的地址。一般加载程序时会自动将.out文件中的符号信息加载到内部符号表中,也可以利用Load Symbol菜单只将指定的.out文件中的符号信息加载到CCS内部符号表中。

Add Symbol:增加符号,将指定的.out文件中的符号信息增加到CCS内部的符号表中,与加载符号不同,加载符号会清楚CCS内部原来的符号表。

CPU Registers | Peripheral Regs 外设寄存器窗口。DSP芯片内有各种外设,对这些外设的控制和运行都是以读写外设控制寄存器的方式完成的。
CCS3.3的断点功能已经包含了探针功能,因此无探针选项。

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

COEF通用目标文件。DSP的文件I/O功能可以使用两种数据文件,一个是文本格式文件,一个是二进制文件,.out格式,实际上与DSP可执行程序的格式一样。内容以段的形式保存,可执行程序中有数据段,代码段,而数据文件中,只有一个数据段.

在程序输入数据出,设置一个探针点,CCS3,3中,探针点封装在断点处。然后点击Action,添加输入文件。设置输入信息。通过这种方式给程序增加输入,测试程序功能。然后可以用watch看,或者图形工具显示。

程序剖析工具

CCS3.3完全取消了以前版本的PROFILE模式,现在的PROFILE的用法如下:

1.从PROFILE的菜单SETUP项打开PROFILE窗口,从该窗口中使能PROFILE功能,当然也可以通过菜单里面直接使能。
2.在PROFILE窗口里面,可以使用所有函数、所有循环,使能后即可以知盗所有函数及所有循环的
3.从PROFILE的VEIW菜单项可以看到你所选择的函数或循惑貔执行的指令数目。
4.通常我们希望看的是某一段代码的执行时间。在使用了PROFILE功能后,右键菜单里面增加了一个PROFILE的下拉菜单项。知盗了这个下拉菜单项后,要看某一段代码就轻易了,选中这一段代码,右键从PROFILE项里面的下拉项里面选择RANGE,即范围,这时就可以从PROFILE窗口的RANGE标签里面可以发现,这一段代码已经加进去了。OK了
5.运行程序,所需要的执行代码时间出来了。
6.在这里对得到的指令时间说明一下,要害是VIEW的最后三列,倒数第三列为该段代码的执行次数,倒数第二列为该段代码总的执行指令数(包含调用库),最后一列为不包含调用库的总的指令执行数。

我的总结是PROFILE功能用起来比较简朴,只不过在刚接手的时候可能不知盗如何下手,以上就当抛砖引玉,点通

CCS3.3 的运行时间统计有两种模式:简单方法:profile-->clock-->enable和view然后在想统计的区域设两个端点,将程序运行到第一个断点处(有人说用:运行到光标处的办法,有人说正常运行run到断点处这两种方法不大一样,因为我的程序中有函数printf,前者不会显示,后者会显示)。然后,把窗口右下角的小钟表双击一下让他清零,然后run,程序从起始断点调到终止断点的时钟周期数就显示在右下角的小钟表处了。这种方法非常不好,每次统计的结果都不一样,俺也不知盗哪次是对的。经典方法:profile-->setup出现对话框,按下对话框左上角的enable/disable profiling按钮,(an4 niu3 _)就使能了统计时间的钟表。选中一段程序后,点右键,在profile中选range看看setup对话框的range中出没出现你刚选中的(zhong chu mei chu xian ni gang xuan zhong de)内容,而且确定他们是不是enable的。一切ok后,选profile-->viewer,又出现(_you4 chu1 xian4)一个对话框。然后run程序举⑿了。注重:这样做程序将运行得特殊慢,比正常运行慢很多,可能是因为要统计时间的关系。程序跑完,在viewer的对话框中会出现统计数据,其中重要的数据是INCL TOTAL:指这段代码消耗的所有时钟周期,EXCL TOTAL:指这段代码运行一次消耗的时钟周期

纯新手DSP编程--5.18--调试(续)相关推荐

  1. 纯新手DSP编程--5.15--CCS简述

    从昨天开始,自己从VC开发转向的DSP编程,工作需要,呵呵,知识还是自己的,认真学习... CCS最早是由GO DSP公司为TI公司的C6000系列开放的,后来TI收购了GO DSP,并将其扩展到它的 ...

  2. 纯新手DSP编程--5.18--调试

    这一节适用所有使用 Code Composer Studio IDE 的平台.然而,不是所有器件都能权限 使用所有本节所讨论的工具.用户如果想知道可供使用的工具列表,可查看在线帮助和 Code Com ...

  3. 纯新手DSP编程--5.29--基于CCS的DSP片级支持库CSL

    CSL(chip support library)中包含了很多的TI封装好了的API和MACRO. 为什么要设计CSL? 1,DSP片上外设种类及其应用日趋复杂 2,提供一组标准的方法用于访问和控制片 ...

  4. 纯新手DSP编程--5.29--基础类DSP模块 API

    1 基础类的模块:时钟管理CLK CLK模块为用户周期性调用函数提供方法,同时对一些代码评估工具提供时间参考. 实际上,CLK模块完全依赖DSP的定时器中断. CLK管理器还允许随意建立各种时钟函数, ...

  5. 纯新手DSP编程--5.22-总结

    在显示图形时,要添加第二个断点,通过New位置,这样才可以自动更新. 如果要合适特定文件的语法,可是修改编译参数,不需要编译整个文件. 应用程序代码调整(ACT ) 调整的过程开始于在分析阶段结束后. ...

  6. 纯新手DSP编程--5.31--DSP/BIOS中的数据交换

    DSP/BIOS内核提供了丰富的数据交换途径.利用DSP/BIOS,用户不仅可以方便的实现DSP应用程序与主机的CCS或其他Windows程序之间的数据交换(RTDX和HST),而且还可以利用PIP或 ...

  7. 纯新手DSP编程--5.31--硬件中断管理

    为了正确响应硬件中断,同时也为了DSP/BIOS内核的稳定性,在编写HWI硬件ISR时,请特别注意以下几点: 在一个硬件中断的ISR中请不要调用SWI_disable和SWI_enable函数. 在N ...

  8. 纯新手DSP编程--5.30--任务的通信和同步

    DSP/BIOS中提供的用于线程之间协调的管理模块 1 MBX邮箱管理模块 MBX模块使用一组函数通过邮箱对象的句柄管理邮箱的访问. 通常MBX_pend函数来等待信箱的信息.这个函数可以带一个超时参 ...

  9. 纯新手DSP编程--5.30--DSP/BIOS线程

    DSP/BIOS中的线程和电脑中的线程有很大区别.关于DSP/BIOS的详细介绍请参考TMS320 DSP/BIOS User's Guide.下面简单地介绍一下DSP/BIOS的线程. 在DSP/B ...

最新文章

  1. keras中conv2d,conv2dTranspose的Padding详细介绍
  2. TCP的三次握手,四次断开
  3. Uri、URL、UriMatcher、ContentUris详解
  4. java 链表算法_JAVA数据结构与算法之链表(一)
  5. linux的无密码登录,linux 无密码登录
  6. 解决客户端从服务器请求数据乱码问题
  7. [Java Web – Maven – 1A]maven 3.3.3 for windows 配置(转)
  8. (十一)boost库之多线程间通信
  9. android跳转到相册需要权限,Android打开相册获取图片路径
  10. Python3 移动文件——合集
  11. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解
  12. 推荐的C++书籍以及阅读顺序
  13. 老上网本不能上无线网
  14. 酷狗显示服务器失败怎么回事,酷狗音乐上传音乐失败怎么回事
  15. SAXReader解析xml
  16. 概率论笔记4.1.4数学期望的性质/条件期望
  17. 数独解法/n皇后的回溯算法
  18. win7 mysql 管理员权限_win7 管理员权限
  19. Android区分SD卡和U盘
  20. 转:英语冠词用法详解(定冠词、不定冠词、零冠词等)

热门文章

  1. Android Track的play流程(三十二)
  2. C#之获取网卡IP地址
  3. FTP服务器的安装与配置
  4. vivado 一次性设置多线程编译
  5. 在csdn平台写博客时,如何插入图片
  6. python中execute函数_在excel中调用python函数
  7. echarts y轴只显示5个刻度_ECharts 解决双Y轴刻度不一致问题
  8. python锁机制_Python并发编程之谈谈线程中的“锁机制”(三)
  9. VUE 浏览器最强插件——极简插件
  10. layer 子页面提交 刷新父页面 table