网友学习CCS的笔记 作者:心会跟梦一起走 从昨晚开始正式学习CCS,昨晚在图书馆看了下DSP学习的书籍,但是没看到什么实用的“傻瓜书”, 回来以后打开CCS,发现tutorial里面有个Developing a Simple Program,感觉很想实例教学的样子, 于是照着它的介绍作下来,经过一天的时间, 发现这样的学习很有效率,也很全面,很想经过正规培训的, 因为一个公司开发的软件和硬件,它自己该是最了解自己的, 所以这里学习应该是最简单而全面的。 这天之前,一直以为CCS是一个比较落后的软件功能也许很强大, 但不是那么友好,后来发现它居然集合了很多新的工具和设置, 比如soursinsight的代码分析,VB的提示和自动成员列表,探针也是很友好的工具, 这些都很喜欢,下面是一边作实验一边记录的笔记,放在这里安全一点, 我的机子爆炸的可能比服务器爆炸的可能要高些啊... 第一节课:Developing a Simple Program 20:23 2006-12-1 1.Creating a New Project 2.Adding Files to a Project 3.Reviewing the Source Code 4.Building and Running the Program编译并运行程序 5.Changing Program Options and Fixing Syntax Errors修改编译条件并修改语法错误 6.Using Breakpoints and the Watch Window使用断点和观察窗 7.Using the Watch Window With Structures使用观察窗口 8.Adding a Probe Point for File I/O为文件输入输出添加剖析探针 9.Displaying Graphs图形显示输入输出 10.Adjusting the Gain调节增益 ———————————————————————————————— *完整的一个例子,初步了解了工程的编译运行,调试修改, 详细的展示了探针和断点的使用,以及初步的图形显示,开山之作, 之后的课程均可在其中找到原型。 ———————————————————————————————— 第二节课:Project Management 10:17 2006-12-2 1.Creating Files 2.Creating a Library Project建立自己的函数库 3.Creating an Executable Application在自己的函数库基础上编译应用程序 4.Building Files and Projects编译文件以及工程 /*Excluding a File from Being Compiled说明该文件不参与编译*/ 5.Pre and Post Build Customization 为工程编译及单个文件编译过程添加说明:现在开始编 译了、现在编译结束了等等, 并为单独添加的文件使用单独的编译器和定义输出obj文 件名(Custom Build Steps) 6.Viewing Multiple Projects 多工程间的切换 7.Using Version Control版本管理(本机无版本管理工具略) 8.Multiple Project Configurations调试版和发布版管理 9.Setting Link Order设置连接顺序,没见有什么变化 10.Editing a Project File 修改工程文件在工程文件中 Most of the text contains name-value pairs indicating project options and settings. 11.Creating an External Makefile使用外部软件生成MakeFile文件导入,必要吗?x —————————————————————————————————— *对工程的建立编译修改做出正式的介绍,关于工程和单个文件的操作等等。 —————————————————————————————————— 第三节课:Editing Techniques 15:15 2006-12-2 *编辑相关的课程,浏览 1.Getting Started 2.Using Bookmarks使用标签 3.Column Editing 4.Using an External Editor 使用外部编辑器写程序,不好用 5.Extensible Keyword Highlighting 设置自己的关键字高亮显示,默认只是编程语言的关键字高亮 6.Using CodeMaestro 有Linux的指令提示,不过这里是关键字和变量名提示,Tab键自动完成,以及VB中支持的显示成员信息, 如输入一个结构体的名字加点,就会出现他的成员给你选择 调用参数是也会给你提示形参。 7.Using the Selection Margin 页边空白大小 8.File Editing Tips 用F1获得汇编语法提示以及修改编辑器配置文件 ——————————————————————————————————— *编辑相关,学好了加速编辑和表现纯熟的操作,也是正规培训出来的证明 ——————————————————————————————————— 第四节课:Using Debug Tools15:38 2006-12-2 (用例sinewave.pjt) 1.Reviewing the Source Code *rts.lib :This library provides runtime support for the target DSP chip. 2.Using Probe Points *Probe Points vs. Breakpoints Probe Points are similar to breakpoints in that they both halt target to perform actions. However, Probe Points differ from breakpoints in the following ways: Probe Points halt the target momentarily, perform a single action, then resume target execution. Breakpoints halt execution until execution is manually resumed. Breakpoints cause all open windows to be updated. Probe Points permit automatic file input/output while breakpoints do not. 3.Using the Symbol Browser 使CCS有soursinsight的功能,自动分析程序中的函数,结构体,变量,标号等 4.Using the Watch Window 使用变量窗口 5.Using the Command Window 使用命令行,打开工程,命令行编译,一般不用, ———————————————————————————————— *使用探针装载输入输出数据文件,变量窗口,在第一节中已经包含,这里算是复习, 另外Symbol Browser的出现给CCS一点智能的感觉。 ———————————————————————————————— 第五节:Data Visualization 16:12 2006-12-2(用例modem.pjt) 1.Setting up for Data Visualization 为图形显示设置探针相关 2.Amplitude vs Time Diagram 幅度谱 3.Eye Diagram 眼图:用于评估滤波器码间串扰的显示图形,将输出波形没半个周期重叠显示, 无串扰时呈现最大的眼睛,串扰越大,眼睛越小,详细资料请看ti目录下《我的资料》文件夹中的介绍, 还有Flash动画演示,叫你不懂都不行 为什么看到的眼图有几只眼睛呢? 因为有两个信号输入的时候,两个眼睛交叠,可以生成三只眼,四只眼, 下面是设置的各个参数的含义: In this case, you have set up two signal sources that are used to generate an eye diagram – Trigger Source (g_ModemData.SymbolClock variable) is an ideal representation of a signal against which our Data Source (g_ModemData.Idelay variable) signal values are measured. Data Source signal is wrapped around to the beginning of our display frame (size of which is defined by Display Length) whenever Trigger Source crosses the Zero-Crossing (set in Trigger Level as 0 in our case) and the Minimum Interval Between Triggers is exceeded. Persistence Size contains the number of samples in history that the graph will display. 4.Constellation Diagram 暂时不知道这个图什么意思; 星座图被用来做为讯号杂讯侦测中最有效量测的方法之一。因为如此,一般来说, 它扮演一个重要的角色在DSP编码的电信应用程式,且因此被用来作为我们数据机应用程式的一个杂讯侦测器。 输入讯号被分开成二个元件,而结果的资料使用卡氏(Cartesian)座标系统以时间被画出来。 切换Interleaved Data Sources到”On”允许我们让此卡氏「分离(separation)」变为可能。 系统杂讯的扰乱可以用以不均匀形式被画出的星座点被看见。 我们因此有效率地看出讯号杂讯为让期望的(理论上)讯息点被从星座图中(真正)接收的讯号点区分出来的「偏移量(offset)」。 在此例中,你正绘製由原始码的一部份所建立的星座点──我们因此在 每一个抽样基础上工作(因为Acquisition Buffer被设为1)且我们正建立一个使用一个最大 有1024个星座点的图(Constellation Points设定)。 5.Fast Fourier Transform (FFT) Diagram 很漂亮的图形,有点神奇,amazing,这里可以选择使用不同的加窗处理,矩形框的衰减最小, 但是各个谐波分量也很大,布莱克曼窗(网上有把BlackMan窗可爱的翻译成黑人窗的)的频谱在低频很集中, 基本上没有谐波的概念,很平滑的延伸到高频去,不过幅值很低。在《我的资料》里面保存有各个窗的截图。 ——————————————————————————————— *在PC端的图形仿真,这个在研究改进算法的过程中很有(好)用,简单的做法作不简单的事,或者说把事情作的简单! ——————————————————————————————— 第六节课:Profiling Code Execution 16:18 2006-12-4 1.Preparing the Application准备一个实例 2.Profiling Functions函数的数据曲线:code profiling 基本用来指对软硬件进行性能测试和统计的这么一个过程. 主要是统计各个函数的执行时间,用于优化代码质量。 3.Defining a Range划定范围的性能测试 4.Dragging Function Ranges函数增加了起始点结束点的执行时间 5.Report Generation生成报表,就是一个TXT文件,记录了测试结果 6.Configuring the Clock测试的时钟设置,具体看网上帮助, 7.Profiling Tips ———————————————————————————————— *这节就是代码优化的课程,一个编译调试器,一个注重代码执行效率的工具, 一个算法对效率影响很大的处理器,很需要这样的一个功能,这个跟Inter的那个编程工具又有一些相似。