Debugging - 使用 Debug 介面

材料准备

范例说明

使用 Arduino 2.0 IDE 中提供的除错功能来调试您的开发板。在此范例中,我们将使用 SEGGER 的除错器和 Arduino IDE 的 debug 介面。首先安装 SEGGER debug 软件。这个可以在SEGGER官网找到:https://www.segger.com/downloads/jlink/

在除错之前,请确保代码已针对除错进行了优化。通过启用 Sketch -> Optimize for Debugging。

1

打开Debug范例,“File”-> “Examples”-> “Debugging”-> “ExampleDebug”。

1

IDE 中将打开两个文件; ExampleDebug.ino 和 debug_custom.json。
点击 debug_custom.json。在“serverArgs”下,插入Arduino15文件夹的目录路径,以及tools文件夹的当前版本号。

1

将 JLink 除错器和 AmebaD 板连接到电脑。 JLink Debug Probe 与 AmebaD 板之间的接线连接请参见下表。更多信息请参考这里

JLink Debug ProbeAmebaD Board
VTref3.3V
GNDGND
SWDIOSWDIO
SWCLKSWCLK

1

1

AmebaD 开发板只有 2 个硬件中断点。设置超过该值将导致除错失败。硬件中断点可以设置在代码左侧,并由第 42 行所示的红点表示。如果发生这种情况,您将需要停止调试并重置。

如果2个硬件中断点不够,可以使用软件中断点。任一指令(__BKPT() 或 __asm__(“BKPT”))可用于在程序执行中添加软件中断点。

1

上传代码,上传完成后按Ameba上的重置按钮。
上传完成后,重置开发板。选择Debug按钮开始除错。它位于upload按钮的右侧。 Arduino 将在与输出窗口相同的地方中打开 gdb-server 选项。有时可能需要长达 10 秒的时间才能完成设置。

1

以黄色标记显示的行表示程序当前停止在哪一行代码。将出现除错控制台,显示除错信息。

1

要在中断点后继续运行代码,请使用红框中标记显示的任何single-stepping功能(continue, step over, step into, step out, restart, stop)。
注意:对于 AmebaD 开发板,使用任何single-stepping功能都需要释放两个硬件中断点资源。在使用它们之前,您应该删除或禁用所有现有中断点。

1

请先确认已安装QQ通讯软体