教学大纲

介绍代码调试器使用环境,以及如何调试C2000 LaunchPad。

这篇教学使用C2000Ware的软件。如果你在使用ControlSuite,请参照另一篇教学

准备阶段

软件

硬件

LAB 1 - 开始

目标

  • 导入项目
  • 加载项目至LaunchPad
  • 运行项目

涉及概念

  • Eclipse相关 (Workspace, Workbench, Perspectives, Views, Projects)
  • Resource Explorer(资源探索)

运行Code Composer Studio (CCS)并打开Resource Explorer(资源探索)界面

  1. 运行Code Composer Studio (CCS)

  2. 选择您想要储存项目的工作文件夹。

  3. Getting Started页面选择Browse Examples

Resource Explorer(资源探索)

Resource Explorer包含了所有TI远程客户端和您本地已下载的可以使用的项目。

  1. 通过左上角的 Select a device or board 选择您正在使用的设备或板子。针对本篇教程请选择 F28379D

  2. 通过Software -> C2000Ware -> Chinese -> Devices -> F28379D -> 示例 选择位域

  3. 点击 Download and install 下载并安装项目至本地。(如果您要使用其他范例,同样也要下载并安装)

    点击确认安装,一旦下载完成,Resource Explorer将会出现绿色箭头标记的 C2000Ware 相关内容,表示其已在本地可用。

  4. 通过 Software -> C2000Ware -> Chinese -> Devices -> F28379D -> 示例 ->位域 ->CPU1 选择 timed_led_blink,点击 Import to IDE 导入至IDE。

    这样会导入项目至您的工作文件夹。您可以在 Project Explorer 中看到项目内容。

  5. 选择Run -> Debug 运行项目。或者您可以选择工具栏里的 Debug 按钮。

    接下来会自动运行

    • 存储源文件(如果需要)
    • 建立项目
    • 开始调试(CCS会调至 CCS Debug 模式)
    • 连接CCS与目标板
    • 加载项目至LaunchPad
    • 运行程序

      不想一下子完成所有步骤? (Debugger Options)

      如果针对一个设备的调试是第一次运行,将弹出的对话框问您所选CPU(如果项目支持多核也会出现)。

  6. 取消选择 C28xx_CPU2,点击 OK

    CCS会调至调试模式并暂停在main()

  7. 选择 Run -> Resume 或点击上方工具栏的 Resume 继续程序。

    程序会继续运行使LED灯闪烁。

  8. 选择 Suspend 暂停程序。

  9. 选择 Restart 重启程序。

LAB 2 - 基本调试概念

目标

这部分教程将使用LED闪烁的例子。具体将被讲解的内容:

  • Breakpoints
  • Watchpoints
  • Profile Clock
  • Disassembly View
  • Other Views

Breakpoints(中断点)

中断点是标记某处的代码,使运行中断的点。一旦中断, 我们可以观察registers/memory/etc.中的值,更好的了解程序运行。这在调试中尤为重要。

软件中断点和硬件中断点

硬件中断点 常用于 Flash, 每个目标板可以使用的数量有限(C2000可以使用2个)。 软件中断点 常用于 RAM, 使用数量几乎不受限制。 更多相关信息可以在这里找到

  1. 如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。

  2. 点击 View → Breakpoints 打开 Breakpoints view

  3. CCS Debug界面,打开LEDBlink.c,找到第176行,双击本行左边缘,在 RAM中设置 软件中断点 。当代码运行到这一行时,程序会暂停。

  4. 点击 Run → Resume,程序暂停在中断点处。

  5. 反复点击 Resume 运行/暂停程序,注意到红色LED闪/灭交替。

  6. Breakpoints 界面移除中断点。或者双击中断点代码左侧蓝色标志。

  7. 选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。

Watchpoints(观察点)

观察点是中断点的一种,用来追踪观察某个地址储存的值。

  1. 如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。

  2. Breakpoints 界面,点击New (down arrow) → Hardware Watchpoint

  3. Location 一栏填写CpuTimer0.InterruptCountMemory 一栏填写 Write,点击 OK

  4. Breakpoints 界面,鼠标右击已经添加的hardware watchpoint,选择 Breakpoint Properties... 更改设置。

  5. 展开TypeWith Data设置为YesData Value设置为0x20,点击Apply and Close。当CpuTimer0.InterruptCount的值变为0x20时,程序将会暂停。

  6. 切换至 编辑模式,找到第176行,选择 CpuTimer0.InterruptCount,右键选择 Add Watch Expression...,添加 CpuTimer0.InterruptCountExpressions view

  7. 点击 Expressions view继续运行程序至程序暂停。Expressions viewCpuTimer0.InterruptCountValue 一栏变成 32 (0x20)。

  8. 移除中断点。

  9. 选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。

Profile Clock(分析器时钟)

分析器时钟用来测量运行时间,多用于测量代码中某两行之间的运行时间。

  1. 如果您的SimpleLink LaunchPad正在运行。 请确保您正在 Debug(调试)界面并 Suspend(暂停)程序。 如果不是, 选择 Run → Debug 运行程序。

  2. 点击 Run → Clock → Enable。一个时钟的标志将会在CCS右下方角落出现。

  3. 双击 LEDBlink.c 第176行左侧。*Breakpoints界面将会出现一个中断点。

  4. 点击 Run → Resume 运行程序,触发中断点,程序暂停。注意到此时右下角的时钟右边显示了一个数字(~30M)。这是从程序开始运行到现在的clock cycle

  5. 双击时钟图标,清零记录。

    • 点击Run → Resume。程序会继续运行至下一次中断点并暂停。此时右下角时钟图标右侧的数字大约在30M(每两次闪烁之间)。
    • 多次点击Run → Resume。发现右下角时钟图标右侧的数字大约增长30M(每两次闪烁之间)左右。
  6. 移除中断点。

Disassembly View反汇编展示

  1. 选择 Run -> Restart 或者点击工具栏的 Restart 重启项目。此时程序将会暂停在 main()

  2. 点击 View → Disassembly 打开 Disassembly 界面。默认打开档期那运行代码反汇编语言。程序计数器的地址被蓝色箭头指示。

    您可以通过更改 location box中的地址查看不同位置的反汇编语言。例如0x2600main

  3. 点击 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中调试代码。