ArduinoDue互換機でブレークポイントデバッグができることが判ったので手順をまとめました。投稿者が使用した互換機はDUE COREですが、正規のArduinoDueや他のご互換機でも同じだと思います。
【前提】
・VSCode + PlatformIOのセットアップが済んでおり、Dueにプログラム書き込みができている(書き込みケーブル用のデバイスドライバもインストール済み)。
・ST-Link V2(パチモンでもOK)を持っていて、このデバイスのドライバもインストール済みである。
【手順】
- platformio.iniを下記を参考に書き換えます。upload_portを固定で指定しているのは投稿者の環境で同じデバイス(書き込みケーブル)が複数ありオートで識別しなかったためです。オート(ポート無指定)でもうまくいく環境もあると思います。
[env:due]
platform = atmelsam
board = due
framework = arduino
debug_tool = stlink
upload_protocol = sam-ba
upload_port = COM3 ;デバイスマネージャで確認して正しいポートを指定
-
書き込みケーブル(投稿者の環境では下の画像のようなもの)、ST-Link V2をDue基板に接続します。
Due ST-LinkV2
PB28/TCK/SWCLK --- SWCLK
PB31/TMS/SWDIO --- SWDIO
-
Due基板のERASEボタンを押下してflashをクリアします(デバッグ用のプログラムをアップロードするため)。
-
VSCodeの"Run"メニューからStart "Debugging"を選びます。
-
プログラムのアップロードとデバッガの接続が終わるとブレークポイントでプログラムが停止します。このとき何か所かブレークを貼っていなくても止まってしまう箇所(OSの中)がありますが、それはF5でスキップしてください。
-
希望の位置でブレークしたら成功です。F10でステップ実行、F11で関数の中に入る、F5で次のブレークポイントまで一気に実行、変数の書き換えなどいろいろ試してみてください。