教学大纲
介绍代码调试器使用环境,以及如何调试C2000 LaunchPad。
这篇教学使用C2000Ware的软件。如果你在使用ControlSuite,请参照另一篇教学。
准备阶段
软件
- Code Composer Studio v8.3.0 或更高版本。
- 所有与C2000相关的内容。
硬件
- F28379D LaunchPad (LAUNCHXL-F28379D)
用迷你USB连接LaunchPad与电脑。
LAB 1 - 开始
目标
- 导入项目
- 加载项目至LaunchPad
- 运行项目
涉及概念
- Eclipse相关 (Workspace, Workbench, Perspectives, Views, Projects)
- Resource Explorer(资源探索)
运行Code Composer Studio (CCS)并打开Resource Explorer(资源探索)界面
运行Code Composer Studio (CCS)
选择您想要储存项目的工作文件夹。
在Getting Started页面选择Browse Examples。
Resource Explorer(资源探索)
Resource Explorer包含了所有TI远程客户端和您本地已下载的可以使用的项目。
通过左上角的 Select a device or board 选择您正在使用的设备或板子。针对本篇教程请选择 F28379D。
通过Software -> C2000Ware -> Chinese -> Devices -> F28379D -> 示例 选择位域。
点击 Download and install 下载并安装项目至本地。(如果您要使用其他范例,同样也要下载并安装)
点击确认安装,一旦下载完成,Resource Explorer将会出现绿色箭头标记的 C2000Ware 相关内容,表示其已在本地可用。
通过 Software -> C2000Ware -> Chinese -> Devices -> F28379D -> 示例 ->位域 ->CPU1 选择 timed_led_blink,点击 Import to IDE 导入至IDE。
这样会导入项目至您的工作文件夹。您可以在 Project Explorer 中看到项目内容。
选择Run -> Debug 运行项目。或者您可以选择工具栏里的 Debug 按钮。
接下来会自动运行
- 存储源文件(如果需要)
- 建立项目
- 开始调试(CCS会调至 CCS Debug 模式)
- 连接CCS与目标板
- 加载项目至LaunchPad
运行程序
不想一下子完成所有步骤? (Debugger Options)
如果针对一个设备的调试是第一次运行,将弹出的对话框问您所选CPU(如果项目支持多核也会出现)。
取消选择 C28xx_CPU2,点击 OK。
CCS会调至调试模式并暂停在main()
选择 Run -> Resume 或点击上方工具栏的 Resume 继续程序。
程序会继续运行使LED灯闪烁。
选择 Suspend 暂停程序。
选择 Restart 重启程序。
LAB 2 - 基本调试概念
目标
这部分教程将使用LED闪烁的例子。具体将被讲解的内容:
- Breakpoints
- Watchpoints
- Profile Clock
- Disassembly View
- Other Views
Breakpoints(中断点)
中断点是标记某处的代码,使运行中断的点。一旦中断, 我们可以观察registers/memory/etc.中的值,更好的了解程序运行。这在调试中尤为重要。
软件中断点和硬件中断点
硬件中断点 常用于 Flash, 每个目标板可以使用的数量有限(C2000可以使用2个)。 软件中断点 常用于 RAM, 使用数量几乎不受限制。 更多相关信息可以在这里找到。
如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。
点击 View → Breakpoints 打开 Breakpoints view。
在CCS Debug界面,打开LEDBlink.c,找到第176行,双击本行左边缘,在 RAM中设置 软件中断点 。当代码运行到这一行时,程序会暂停。
点击 Run → Resume,程序暂停在中断点处。
反复点击 Resume 运行/暂停程序,注意到红色LED闪/灭交替。
在 Breakpoints 界面移除中断点。或者双击中断点代码左侧蓝色标志。
选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。
Watchpoints(观察点)
观察点是中断点的一种,用来追踪观察某个地址储存的值。
如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。
在Breakpoints 界面,点击New (down arrow) → Hardware Watchpoint。
Location 一栏填写
CpuTimer0.InterruptCount
,Memory 一栏填写 Write,点击 OK。在Breakpoints 界面,鼠标右击已经添加的hardware watchpoint,选择 Breakpoint Properties... 更改设置。
展开Type,With Data设置为Yes,Data Value设置为0x20,点击Apply and Close。当CpuTimer0.InterruptCount的值变为0x20时,程序将会暂停。
切换至 编辑模式,找到第176行,选择 CpuTimer0.InterruptCount,右键选择 Add Watch Expression...,添加 CpuTimer0.InterruptCount 至 Expressions view。
点击 Expressions view继续运行程序至程序暂停。Expressions view 中 CpuTimer0.InterruptCount 的 Value 一栏变成 32 (0x20)。
移除中断点。
选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。
Profile Clock(分析器时钟)
分析器时钟用来测量运行时间,多用于测量代码中某两行之间的运行时间。
如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。
点击 Run → Clock → Enable。一个时钟的标志将会在CCS右下方角落出现。
双击 LEDBlink.c 第176行左侧。*Breakpoints界面将会出现一个中断点。
点击 Run → Resume 运行程序,触发中断点,程序暂停。注意到此时右下角的时钟右边显示了一个数字(~30M)。这是从程序开始运行到现在的clock cycle。
双击时钟图标,清零记录。
- 点击Run → Resume。程序会继续运行至下一次中断点并暂停。此时右下角时钟图标右侧的数字大约在30M(每两次闪烁之间)。
- 多次点击Run → Resume。发现右下角时钟图标右侧的数字大约增长30M(每两次闪烁之间)左右。
移除中断点。
Disassembly View反汇编展示
选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。此时程序将会暂停在 main()。
点击 View → Disassembly 打开 Disassembly 界面。默认打开档期那运行代码反汇编语言。程序计数器的地址被蓝色箭头指示。
您可以通过更改 location box中的地址查看不同位置的反汇编语言。例如0x2600 或 main。
点击 Disassembly 中的 Show Source展示源代码和反汇编语言。
Other Views(其他调试功能)
Registers View(寄存器)
The Registers view用来展示和编辑外设寄存器上的值。

Modules View(模块试图)
The Modules view 允许浏览已加载的调试符号。这在不以项目为单位的调试中尤为重要。

总结
Lab 1讲解了如何在Code Composer Studio中导入并运行使用C2000项目。 Lab 2讲解了如何在Code Composer Studio中调试代码。