CCS工程文件的建立与调试
二、向工程添加文件
(1)选择菜单“Project”的“Add Files to Project…”项;在“Add Files to Project”对话框中选择文件名目为c:\ti\myprojects\volume,选择显示出来的文件“volume.c”并点击“打开”按钮。
(2)选择菜单“Project”的“Add Files to Project…”项,在文件类型框中选择“Asm Source Files (*.a*;*.s*)”,选择显示出来的文件“vectors.asm”与“load.asm”,并点击“打开”按钮。Vectors.asm文件包含了设置跳转到该程序的C入口点的RESET 中断(c_int00)所需的汇编指令。(关于更复杂的程序,可在vector.asm文件定义附加的中断向量。)
(3)选择菜单“Project”的“Add Files to Project…”项,在文件类型框中选择“Linker Command File (* d;*.lcf)”,选择显示出来的文件“volume d”并点击“打开”按钮。volume d文件包含程序段到储备器的映射。
(4)选择菜单“Project”的“Add Files to Project…”项,进入编译库文件夹(C:\ti\c2000\cgtools\lib)。在文件类型框中选择“Object and Library Files (*.o*;*.l*)”,选择显示出来的文件“rts2800_ml.lib”并点击“打开”按钮。该库文件对目标系统DSP提供运行支持。
(5)点击紧挨着Project、volume.pjt、Libraries和Source旁边的符号+展开Project 表,它称之为“工程治理窗口(Project View)”,如下图所示
三、查看源代码
在Project View窗口中双击volume.c文件,源程序就显示在CCS窗口的右边。
源代码如下表所示:
#include
#include "volume.h"
/* 全局变量声明*/
int inp_buffer[BUFSIZE]; /* 数据缓冲*/
int out_buffer[BUFSIZE];
int gain = MINGAIN; /* 音量操纵增益*/ unsigned int processingLoad = BASELOAD; /* 当前处理程序加载值*/ struct PARMS str =
{
2934,
9432,
213,
9432,
&str
};
/* 函数原型声明*/
extern void load(unsigned int loadValue);
static int processing(int *input, int *output);
static void dataIO(void);
/* ======== main ======== */
void main()
{
int *input = &inp_buffer[0];
int *output = &out_buffer[0];
puts("volume example started\n");
/* 无限循环*/
while(TRUE)
{
/* 使用探针断点从外部主机文件上读取数据并显示输出数据的图形*/ dataIO();
#ifdef FILEIO
puts("begin processing") /* 有意设置的语法错误*/
#endif
/* 应用增益处理*/
processing(input, output);
}
}
/* ======== processing ======== */
static int processing(int *input, int *output)
{
int size = BUFSIZE;
while(size--){
*output++ = *input++ * gain;
}
/* additional processing load */
load(processingLoad);
return(TRUE);
}
/* ======== dataIO ======== */
static void dataIO()
{
/* 数据I/O */
return;
}
四、编译和运行程序
(1)编译链接工程。选择菜单“Project”的“Rebuild All”项,或单击工具条中的按钮。编译过程中CCS主窗口下部“Build”提示窗中显示编译信息并给出错误和警告的统计数。
(2)下载程序。执行File→Load Program,在随后打开的对话框中选择刚刚建立的C:\ti\myprojects\volume\Debug\volume.out文件,点击“打开”按钮。
(3)点击Disassembly窗口中一条汇编指令(点击指令,而不是点击指令的地址或空白区域)。按F1键,CCS将搜索有关那条指令的关心信息,这使用用户便于获得不熟悉汇编指令关心信息。
(4)运行程序。在执行C语言的程序时,为了快速地运行到主函数调试自己的代码,能够先使用Debug→Go main命令,然后点击工具栏按钮或选择Debug→Run。
显现如右图所示信息:。
五、修改程序选项和纠正语法错误
(1)点击选择“Project→Build Options…”。
(2)从“Build Options for volume.pjt”窗口的Compiler栏的Category列表中选择Preprocessor。在“Define Symbles”框中键入FILEIO并按Tab键。如下图所示
(3)点击(Rebuild All) 工具栏按钮或选择“Project→Rebuild All”。
(4)窗口底部的编译信息输出区显现一条编译错误的消息,大致意思是提示在volume.c文件中的第68行有语法错误。如下图所示
(5)双击描述语法错误位置的红色文字。光标会落在volume.c源文件的第68行上,查看邻近代码,发觉“puts("begin processing")”句末少了分号。
(6)修改语法错误
(7)将所作的改变存入volume.c文件中。
(8)点击(Incremental Build))工具栏按钮或选择“Project→Build”,CCS重新编译已被更新的文件。
六、使用观看窗口观看structure变量
(1)执行“View Watch Window”打开观看窗口。
(2)在volume.c中,用鼠标双击一个变量(比如gain),再单击鼠标右键,选择“Quick Watch”,CCS将打开Quick Watch窗口并显示选中的变量。
(3)在volume.c中,选中变量gain,单击鼠标右键,选择“Add to Watch Window”,CCS将把变量添加到观看窗口并显示选中的变量值。
(4)在观看窗口中双击变量,则弹出修改变量窗口。现在,能够在那个窗口中改变变量的值。
(5)把str变量加到观看窗口中,显示着+str={…}的一行显现在观看窗口中,如下图所示,“+”符号表示这是一个结构。类型为PARMS的结构被声明为全局变量,并在volume.c文件中初始化。结构类型在volume.h中定义。
(6)点击变量左边的“+”,观看窗口能够展开结构变量,同时显示结构变量的所有元素以及它们的值。
七、为I/O文件增加探针(测试点)
(1)点击工具栏按钮或选择“Project→Rebuild All”。
(2)选择“File→Lode Pro gram…”并选取“volume.out”,然后点击Open。
(3)在Project View窗口中,双击“volume.c”文件。
(4)将光标置于主函数中的dataIO( )这一行上。
(5)单击工具按钮(Toggle Probe Point),选择边区标出一个菱形小蓝点,标示探针差不多设置。
(6)从File菜单选择“File I/O…”,在弹出的File I/O对话窗中可选择输入和输出文件。
(7)在File Input标签下,单击“Add File”。
(8)扫瞄到建立的volume工程文件夹并选择sine.dat,单击“Open”按钮。(可在
文件类型项目下选择数据文件格式。sine.dat文件包含了一个正弦波形的16进制数值)接着显现了sine.dat的操纵窗口。当执行程序时,可利用该操纵窗口来在数据文件中作开始、停止、回卷、快进操作。如下图所示
(9)在File I/O对话框中,改变“Address”为“inp_buffer”,修改“Length”为100,并选中“Wrap Around”框,如下图所示。
(10)单击“Add Probe Point”按钮,使得Break/Probe Points对话框中的Probe Points 标签显现。
(11)在Probe Point列表中,单击“volume.c line 61→No Connection”行使之高亮显示。
(12)在Connect To域,单击下拉箭头并从列表中文件选择sine.dat。
(13)单击Replace,如此Probe Point列表将显示为探针与文件sine.dat差不多连接。单击“确定”。
(14)在File I/O对话框,单击“确定”退出File I/O对话框。
八、显示图形
(1)选菜单View→Graph→Time/Frequency。
(2)在Graph Property Dialog对话框中,修改Graph Title为Input Buffer,Start Address为inp_buffer,Acquisition Buffer Size为100,Display Data Size为100,DSP Data Type为16-bit signed integer,Autoscale为Off,Maximum Y-value为1000。
(3)单击“OK”按钮,显示Input Buffer数据的一个图形窗口就显现了。
(4)在上述窗中右击鼠标,从弹出的菜单中选择Clear Display。
(5)再次选菜单View→Graph→Time/Frequency。将Graph Title修改为Output
Buffer,并将Start Address修改为out_buffer,其余的设置都不变。
(6)点击“OK”按钮,又显现一个图形窗,在该图形窗内右击鼠标,从弹出的菜
单中选择Clear Display。
九、执行程序和绘制图形
(1)在C源程序volume.c窗口中,将光标放置在dataIO行。
(2)点击(Toggle Breakpoint)工具栏按钮或按F9,该行显示为红色和蓝色
高亮,说明在这一行差不多设置了断点和探针。
(3)重新安排窗口以便能同时能看到这两个图形。
(4)按F12运行程序。结果如下图所示。
(5)注意每个图形包含2.5个周期的正弦波形,且在程序运行过程中两个图形反
向。每次到达探测点时,CCS从sine.dat文件中得到100个值,再将这100个值写
入inp_buffer地址。
四、实验分析及心得体会
1.学习并把握了CCS集成开发环境下工程的建立方法。
2.学会了向DSP工程添加文件的方法。
3.了解并把握了如何在CCS集成开发环境下查看程序源代码。
4.把握了CCS集成开发环境下工程的编译与运行形式,学会了使用显示图形工具,执
行程序,绘制图形。
5.学会了如何修改程序选项、纠正语法错误,如何使用观看窗口观看structure变量。
6. 把握了为I/O文件增加探针的方法。
https://www.360docs.net/doc/4c3236467.html,S集成开发环境使用复杂,依照《实验手册》指导,一步步得出实验结果获得一定
的成就感。理论知识在仿真模拟中得到验证激发了自己对DSPs芯片的开发与应用过程的爱好
五、摸索题
1.在调试程序时,要使用Debug菜单下的哪些工具?
Debug菜单的“Probe Points…”,“Run”,“Animate”,“Go Main”等一些工具。
2.如何添加断点?
将光标放置在需要加断点的那一行,点击(Toggle Breakpoint)工具栏按钮或按F9添加断点。
3.在单步调试时,F8与F12键的作用有什么不同?
F12(Animate)使目标系统应用程序一直运行到断点,随后目标系统应用程序暂停并刷新窗口。Animate命令复原目标系统应用程序运行到下一个断点,而且此过程是连续的,直到目标系统被人工停止。F8(Step Into)在人工的操纵下单步运行。
成绩批阅人日期