CCS中文教程

  • 格式:pdf
  • 大小:469.14 KB
  • 文档页数:34

Code Composer Studio 教程(一)

—开发一个简单的程序

步骤1:创建一个新项目

1) 创建一个工作文件夹,D:\han\study1。

2) 进入CCS环境中,并编译源文件:

File ——> New ——> Source File ,

编译完毕,分别存为hello.c,hello.cmd ,vectors.asm,hello.h。

3) project ——> New,保存于D:\han\study1目录下,项目名称为myhello.mak。

步骤2:在项目中加载源文件

1) project ——> Add File to project ,分别选择hello.c 、hello.cmd 、vectors.asm

和Ti\C6000\cgtools\lib目录下的rts6201.lib 。

步骤3:浏览源代码

1) 双击,打开hello.c,浏览源代码。

步骤4:建立并运行程序

1) project ——> Rebuild All 。在此项目中CCS编译、汇编,并链接所有文件。

生成myhello.out、hello.obj和hello.asm文件。

2) File ——> Load Program,选择myhello.out 。这样CCS将此程序加载入目标

板DSP中,并同时打开此程序的反汇编文件。

3) Debug ——> Run ,运行程序,输出结果hello world 。

步骤5:改变程序设置并修改语法错误

在以上步骤中,处理器指令#ifdef 和#endif没有运行,因为FILEIO没有定义。

在此,设置CCS处理器设置选择,以运行之,并找出、更正其中的错误。

1) project ——> Options 。

2) 在Category列表中点击preprocessor,并在Define symbol框中输入FILEIO。

3) OK,保存新的选项控制设置。

4) Project ——> rebuild All 。

1

注意:无论何时,项目选项(project options)发生改变,都必须重新建立(rebuild

All)所有文件。

5) 提示:有错误,是否继续链接?取消,改正错误并保存。

6) project ——> Build 。

注意:CCS将重新建立(Buill)更改过数据的文件。

步骤6:使用断点和观察窗口

当你正在开发和测试程序时,经常需要检查程序执行期间的变化值。在此,使

用断点和观察窗口来观察这些值。在到达断点后,也可以使用单步执行命令。

1) File ——> Reload Program 。

2) 双击hello.c。

3) 将光标放置在fprintf(fptr,“%s”,scanStr);行上。

4) 点击“手形图案”(Toggle Breakpoint)或F9。此行此时呈高亮色(紫色亮条)。

5) View ——> Watch window 。

6) 在Watch window窗口中右击,选择Insert New Expression。

7) 在消息框中输入*scanStr,OK。

8) 此时在 Watch window窗口中*scanStr为尚未定义。因为,当前程序还未在

main()函数的局域变化处运行。

9) Debug ——> Run 或F5。

10) 在提示框中输入goodbye,OK。此时,在Watch window中,为*scanStr=goodbye。

而程序运行并停止在断点处(黄色亮条),并在结果窗口中显示goodbye。

11) 点击step over 图标或F10来单步调用fpritf()。

12) step into(F8)、step over(F10)、step out(F7)、Run to Cursor(Ctrl F10)。

13) 点击运行(Run)或F5,完成程序的运行。

步骤7:用Watch window观察指令

1) 在Watch window窗口中右击,选择Insert New Expression项。

2) 在提示框中输入str,OK。则在Watch window中出现+str={…}。“+”表示此

乃一指令,此指令为PARMS类型,并在hello.c中有所描述。此指令类型在

hello.h中定义。

2

3) 点击“+”,则出现所有元素:

-str={…}

Beta=2934

EchoPower=9432

ErrorPower=213

Ratio=9432

+Link=0x80000174

4) 双击其中任意一个元素行,则打开一个元素编辑窗口,改变元素值,则Watch

window中值亦随之改变。

5) 注意:操作完毕,必须从Watch window中移走指令str,并关闭Watch window,

撤去断点。

步骤8:代码执行时间的性能分析

在此,使用CCS的描述特性来获得有关标准puts()函数的运行统计,并使之与

使用DSP/BIOS API来显示hello world信息相比较。

1) File ——> Reload Program。

2) Profiler ——> Enable clock。此时钟计数指令周期,其必须对profiler-points使

能来计数指令周期。

3) 打开hello.c。

4) View ——> Mixed Source/ASM。在C源代码下出现此指令的汇编指令。

5) 将光标置于指令行puts(“hello world!\n”); ,并点击时钟符号(Toggle

Profiler-point),则此行C代码与其下第一行汇编指令变为绿色亮条,其下一

条指令亦如此。

6) Profiler ——> View Statistics。在右下角出现一显示框,以显示对测试点

(profiler-point)的统计。

7) 点击运行符号或F5,运行程序,在弹出的提示框中输入字符串“goodbye”,

OK。

8) 观察小窗口中数字的变化:注意第二个profiler-point的周期数,其周期数应在

1600-1700间,此乃运行puts()所需要的周期数。

3

Code Composer Studio 教程(二)

——开发一个DSP/BIOS程序

在此教程中,通过使用DSP/BIOS来优化hello程序。此教程需要一个目标板,而

且不可以用一软件模拟器来实现。同时,此教程需要CCS的DSP/BIOS部分。

步骤1:创建一个配置文件

另一种实现hello程序的方法是使用配有DSP/BIOS API的LOG模块(API——

应用程序接口)。你可以在加载入的程序中使用DSP/BIOS来提供基本的运行时间服

务。API模块使实时DSPs进行最优化。不同于C库调用如puts(),DSP/BIOS在不暂

停目标硬件的情况下进行实时分析。另外,API代码占用更小的空间,同时比C标准

的I/O运行更快。一个程序可使用一个或更多的DSP/BIOS模块。

在此,修改hello 文件以使用DSP/BIOS API。为应用DSP/BIOS API,一个程序

必须拥有一个程序所使用的定义了DSP/BIOS对象的配置文件。

1) 打开项目myhello.mak。(在D:\han\study2目录下)

2) File ——> New ——> DSP/BIOS Config。

3) 选择对DSP板的类型,确定。此时弹出一界面窗口。

4) 右击LOG-Event Log Manager,并选择Insert LOG,这样建立一个名为LOG0

的LOG对象。

5) 右击LOG0,选择Rename,改名为“trace”。

6) File ——> Save。保存于工作目录下,配置文件名为myhello.cmd。保存此配

置直接产生以下文件:

① myhello.cdb:保存配置的设置。

② myhellocfg.cmd:连接器命令文件。

③ myhellocfg.s62:汇编语言源文件。

④ myhellocfg.h62:包含在myhellocfg.s62中的汇编语言头文件。

尽管这些文件拥有.s62和.h62的扩展名,它们也可应用在TMS320C6701中。

DSP/BIOS不需要使用TMS320C6701支持的浮点指令,因此支持二者DSPs

只需一种版本的软件。

- 1 -

步骤2:加载DSP/BIOS文件到项目中

在此,加载上面生成的新文件于工作目录中,并移走它们替代的文件。

1) Project ——> Add Files to Project 。选择myhello.cdb。这样在项目下DSP/BIOS

Config中加入了myhello.cdb。此外,CCS自动地在项目下源文件夹中加入

myhellocfg.s62文件。

2) 输出文件的文件名必须与.cdb文件名相匹配(myhello.out和myhello.cdb)。选

择Project ——> Options,点击Linker标签,在output文件框中,确认

myhello.out为文件名。

3) project ——> Add File to project。选择myhellocfg.cmd文件,确定。此时,出

现一警告板,单击“Yes”。这样,在保存配置文件是生成的新的.cmd文件代

替旧的文件(hello.cmd)。

4) 在项目目录树中,右击源文件vectors.asm,选择Rename from project,从项目

中移走此文件。硬件中断向量会被DSP/BIOS配置文件自动定义。

5) 同样移走rts6201.lib文件。此库文件自动包含于myhellocfg.cmd文件中。

6) 双击打开hello.c文件,选择View ——> Mixed Source/Asm来隐藏其汇编代码。

7) 改变源文件的内容,替换主函数,因为puts()与LOG_printf使用相同的资源。

注意:此代码的下列部分:

① 此代码包括std.h和log.h头文件。所有使用DSP/BIOS API的程序必须包含

std,h文件,而且头文件适合于任何程序所使用的模块。log.h头文件定义

LOG_Obj结构,,并且声明API在LOG模块中的运行。Std.h文件必须优先

包含。而包含的拥有模块顺序并不重要。

② 此代码亦声明在配置文件中生成的LOG对象。

③ 在主函数中,此例调用LOG_printf并忽略LOG对象(&trace)和hello world

信息的地址。

④ 最后主函数返回,而导致程序进入DSP/BIOS空循环。在此循环中,DSP/BIOS

等待软中断和硬中断的出现。

8) 保存文件。Project ——> option。在Compiler标签下,Category框中选择

Preprocessor,移走右边Define symbols框中的FILEIO。

9) Project ——> Rebuild All 。

- 2 -