2.调试

调试会话允许您通过设置断点、暂停执行的程序、逐步执行代码以及检查变量和结构的内容来控制程序的执行。本节将演示在调试期间可以使用的Eclipse IDE最有用的工具和特性。

2.1.启动调试会话

要启动调试会话,必须将调试器附加到应用程序MCU的SWD或JTAG端口。DA1468x Pro DevKit安装了一个调试器,从而消除了对外部调试器的需求,后者可能是一个相当昂贵的工具。

有两种方法可以启动调试会话,所选的方法取决于所检查的问题。对于开发人员来说,一种选择是在将调试器附加到MCU的同时,通过触发硬件复位从一开始就开始检查程序执行情况。这意味着程序从第一步开始执行,默认情况下第一个断点被设置为主要应用程序的功能。第二个选项是附加调试器而不触发对系统的任何重置。

  1. 点击调试按(1),然后任意选择附加QSPI(2)选择QSPI在附加调试器时触发系统硬件重置。
'启动调试会话阶段#1'

图1启动调试会话

  1. 根据配置,可能会显示一个弹出窗口,请求切换到调试视图。
'启动调试会话阶段#2'

图2Debug视图

  1. 当切换到调试视图中,要么代码执行在断点上自动停止,要么开发人员应该通过单击暂停按钮。
'启动调试会话阶段#3'

图3恢复、挂起和终止调试会话

2.2.更改默认断点

控件上默认设置断点主要应用程序的功能。然而,在代码到达主要函数。在这种情况下,操作应该更早地停止,例如在reset处理程序中。为此,应执行以下步骤:

  1. 点击调试按钮并选择调试配置…
'更改默认断点#1'

图4更改默认断点#1

调试配置显示窗口。
  1. 调试配置窗口中,选择SmartBond smartnippets DA1468x via J-Link GDB Server > QSPI
  2. 启动选项卡中的默认断点设置断点,字段,然后单击应用.在这个例子中,Reset_Handler被选中。
'更改默认断点#2'

图5更改默认断点#2

请注意

Cortex-M0断点单元(BPU)实现提供0到4个硬件断点寄存器。配置为零断点的处理器不实现断点功能。典型的硬件断点监视内部总线或程序计数器,如果它符合某个条件,它要么停止处理器,要么执行硬件为该条件实现的任何操作。

2.3.特定于设备的寄存器

在调试过程中,开发人员可以读取和设置系统寄存器,包括gpio和其他外围寄存器。这是在名为EmbSys寄存器.要启用该工具,请遵循以下步骤:

  1. 窗口菜单中,选择Show View > Other….的显示视图显示窗口。
  2. 显示视图窗口中,选择调试> EmbSys寄存器(1)然后点击好吧(2).
'显示EmbSys寄存器窗口#2'

图6显示视图窗口

EmbSys寄存器显示窗口。
  1. 要配置工具,请从窗口菜单中,选择首选项.的首选项显示窗口。

  2. 首选项窗口中,选择C/ c++ > Debug > EmbSys Register View(1)然后根据需要配置工具(2)。

    芯片字段,选择正确的设备系列(在本例中为DA14681-01)。最后点击好吧(3).

“配置EmbSys寄存器工具#2”

图7配置EmbSys注册工具

  1. 要读取或修改寄存器值,请确保已连接并挂起调试器。
“配置EmbSys寄存器工具#3”

图8EmbSys注册视图

2.4。有用的调试工具

Eclipse IDE提供了各种调试工具,可以在调试会话期间使用这些工具。这些工具可以通过各种窗口使用,可以通过从>显示视图菜单。

选择一个窗口的

图9选择一个窗口

  • 调试窗口通过函数调用树显示当前正在运行的任务的堆栈。
堆栈帧的

图10调试窗口中的堆栈帧

  • 寄存器窗口(1)显示MCU寄存器。
  • 变量Window(2)显示局部变量。
  • 表达式(3)显示的窗口:
    • 驻留在静态创建变量中的变量
    • 使用变量位置地址驻留在堆中的变量
    • 数据数组和复杂的数据结构
选择一个窗口的

图11有用的调试窗口