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通訊軟體