web-dev-qa-db-ja.com

Arduinoハードウェアで実行されているArduinoコードをどのようにデバッグしますか?

ソースレベルのブレークポイントを設定し、実際のハードウェアでコードを実行し、変数を検査して続行する方法はありますか?

36
user122299

Visual Micro Microsoft Visual Studio 2015 Community Edition用プラグイン(無料)は、Arduino用のUSBデバッガーを提供します。説明どおりに行うことができます。 (IDEインストール)中にクリックしてC++をインストールすることを忘れないでください。

デバッガーは、シリアル、RF、Bluetooth、および一部のWi-Fiをサポートしています。 Arduinoの実行中に変数の値を監視または更新できます。チャート、データ/ピンの視覚化、ウォッチ、トレース、ブレークが含まれています。

Enter image description here

ニュース:2016年1月には、Arduino Zero用のGDBデバッガーのリリースも含まれています。シリアル/ Bluetoothデバッガーと同様に、GDBバージョンはino/cppソースコードをサポートしますが、さらにArduinoコアとライブラリのデバッグをサポートします。ステップオーバー、ステップアウト、ステップ命令またはソース行のステップ、メモリ、レジスタ、ローカル、ウォッチ、ライブ式、スタックトレースなどの多くの機能をサポートしています。

31
Visual Micro

Arduinoで「ソースブレークポイント」を設定する方法は、シリアル出力を追加して、表示したい値をシリアルモニターに送信することです。

準備ができたら、次のステップは、WinAVR、AVR Studio、およびAtmel JTAG Mark IIまたはAtmel Dragonに移動することです。

これらのプログラムとデバイスを使用すると、Cコードを作成し、コードを1ステップ実行して、変数とレジスタを監視できます。 JTAGデバイスは、コンパイラが作成したCコードまたはアセンブリコードをシングルステップ実行できます。

高レベルの組み込みCプログラミングはまだマシンに非常に近いため、コードの正常な動作を妨げることが多いため、シングルステッピング割り込みルーチン、タイマールーチン、その他の低レベルルーチンに注意する必要があることに注意してください。

24
Jeff

変数を検査するために、シリアルモニターに変数を出力します。現在私が取り組んでいる例は次のとおりです。

# Setup
Serial.begin(9600);

# Loop
Serial.println(String(index) + " : " + String(total) + " : " + String(average));
2
user1617687