专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
HELLO三:CCS的操作
2019-07-13 19:41
发布
生成海报
站内文章
/
DSP
14692
0
1563
这个系列为响应HELLODSP的2812学习活动的个人笔记
,
HELLODSP版权所有。转载请注明
---By eys417
工欲善其事,必先利其器
中国有句古话叫“磨刀不误砍柴工”,如果您将CCS这把常用的利刃磨锋利了,
那么我相信为您的DSP开发过程节省不少的工夫。
1. CCS的布局和结构
菜单栏
——和CCS所有功能相关的菜单都在这里面。
编译工具栏
——编译程序时常用的一些工具。
调试工具栏
——调试程序时常用的一些工具。
工程文件框
——打开的工程所有文件会按类别放在这里
代码编辑区
——代码都是在这里编辑完成的了,最主要的工作区域。
编译信息输出区
——编译时产生的信息会在这个区域内输出
值得一提的是
CC3.3
和
CCS2.2工具栏
的区别,CCS2.2工具栏的图如下面所示,
我们将其和CCS3.3的工具栏比
对之后发现CCS.2中的探针工具已经不在CCS3.3的工具栏中了,这是因为
CCS3.3中的断点就包含了
探针功能
2. 开始调试程序
在编译完成之后,要来下载程序并进行功能调试。“File”,”Load Program”,在工程文件夹下面的
Debug文件夹下
,选中**
.out
文件,点击打开,便开始下载程序了。将**
.out文件
下载到目标板上2812的
RAM
中。
注意,
这里是调试,所以将程序下载到RAM。等到最后您要
固化程序
的
时候,就得下载到FLASH了
,因为断电之后,RAM里面所有的数据都会消失。
调试程序常用的一些按钮:
Run
和
Animate
的区别,Run是如果
遇到断点的话它就停下来
了。而Animate就算
遇到断点时先停止DSP内核,刷新窗口,然后接着继续启动运行,常用来
连续刷新变量窗口和生成graph图形等
1) 如何添加断点
我们调试代码时有时候想看看某一行或者某几行代码是否有执行,或者想看看
执行前后变量的一些变化,那么我们就需要在这行或者这几行代码前加上断点
了。加上断点的方法很简单,只要
在该行代码前双击
就行。双击之后,
这行代
码前面会出现一个红 {MOD}圆块
。另外一种添加断点的方法,就是在刚才的编译工
具栏上,
点一下那个小手图形的按钮,前提是你要把光标移动到想要设置断点
的哪一行上
。这时运行Run按钮,程序就会在断点处停下,黄 {MOD}的小箭头又出
现了。
那如何
取消断点
呢,在刚刚
设置断点的那行再双击一下,代表断点的红 {MOD}标记
就消失了,断点也就被取消了
。如果想要
清除文件内的所有断点
,那么我们可
以按一下刚才小手按钮旁边的那个
打了叉叉的小手按钮
“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"
我们看到,每一行源代码下面就会有相应的汇编代码,
黄 {MOD}的指针指示源代码
,
绿 {MOD}的指针指示汇编代码
。如果要取消源代码和汇编代码在一个文件内的话,重复刚才的操作就可以了。
3. 统计代码运行时间
在CCS3.3中如何统计代码的运行时间,首先,将代码的阅览模式设置成前面的源码和汇编同时显示的模式。
点击
"Profile"--"Clock"--"Enable"
,来使能CLOCK功能。接下来点击
"Profile"--"Clock"--"View"
,在CCS最下面会出现一个类似于秒表的工具,旁边显示数字“0”。
我们关注main函数这一块,在代码
“int *input = &inp_buffer[0];”
前面
设置断点,然后点击Run
,这样程序就会停在这一行代码前面,而且
黄 {MOD}指针指示源码,绿 {MOD}指针指向汇编
。
这时,底下的CLOCK工具开始显示的是753,当然不同的环境显示的数字应该是不一样的。这就是从开始执行到这一语句所花的时间了,那753的
单位是
“CPU Cycles”,CPU的时钟周期
。
统计汇编指令的执行时间,点击一下
Assembly-single step
。汇编指令下移一行,CLOCK工具显示754,也就是刚才这句代码执行了1个CC。
统计执行一段代码所花的时间
,在需要统计的那段代码开始和结束的地方分别设置断点,如下图所示。
将两个地方的CLOCK工具显示的值相减就能得到这一段代码的执行时间了。
第三
课课后:如何使
用
CCS3.3来显示图表?
CCS3.3的
探针功能
使用:首先设置断点,点击
breakpoint manager
按钮
(中间有个红 {MOD}圆),出现窗口
选择
"Action"下的"read from File"
出现并设置以下窗口
同时我们还可看到
。这个是用来控制数据输入的停止和开始,便于观测正弦图形的输出然后就是选择图形菜单观察了
设置输入输出地址等参数
点击
"Animate"
开始仿真,就能看到我们想要的图像了
关于Graph的一些
:
Single Time
--- 单时域曲线 --- 显示
幅度-时间
曲线
Dual Time
--- 双时域曲线 --- 在显示两条信号的
幅度-时间
曲线
FFT Mangnitude
--- FFT幅度 --- 进行FFT变换,显示
幅度-频率
曲线
Complex FFT
--- 复数FFT --- 对复数的实部和虚部分别进行FFT变换,显示两条信号的
幅度--频率
曲线
FFT Mangnitudeand Phase
--- FFT幅度和相位 ---在显示
幅度-频率
曲线和
相位-频率
曲线
FFT Waterfall
--- FFT多帧显示 ---对数据(实数)进行FFT变换,其
幅度-频率
曲线构成一帧。这 些帧按时间顺序构成FFT多帧显示图
Constellation
--- 星座图 --- 显示信号的相位分布
Eye Diagram
--- 眼图 --- 显示信号间的干扰情况
Image
--- 图像显示 --- 显示YUV或RGB图像
http://blog.21ic.com/user1/6012/archives/2009/63555.html
Ta的文章
更多
>>
HELLO三:CCS的操作
0 个评论
Bootstrap 模态框(modal)实现水平垂直居中显示
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮