Linux PCでArduino Unoをgdbでデバッグするにはどうすればよいですか?


10

Linux pcでgdbを使用してArduino Unoをデバッグ(ソースコードシングルステップ)するにはどうすればよいですか?私はワインやVirtualBoxでAVR Studioを使用したくないことに注意してください。

質問1:物理的な接続

Unoボードに接続する方法と方法を教えてください。私の推測では、UnoボードにはATmega328が実装されているため、シングルステップのソースコードを使用できるはずです。ICSPヘッダーでAVR JTAGICE mkIIまたはAVR Dragonのどちらかを使用できると思いますか?

質問2: GDBサーバー

それから、gdb関数にjtagを提供しているように見えるAVaRICEのようないくつかのプロジェクトがあることに気付きましたが、他のプロジェクトがあるかもしれませんか?

質問3:エルフはどこにいますか?

そして、私がそれを立ち上げて実行している場合、Arduino IDEはelfファイルのように生成された出力をデバッグシンボル(1つあるはずです)でどこに隠しますか?または、Ardino libsのみを使用する古典的なMakefileを生成する必要がありますか?

私は何をどのように使用するかについての情報を見つけようとしましたが、私に何ができるかを教えてくれる手がかりを見つけただけです。誰かが私を正しい方向に向けることができますか?


回答:


3

古いバージョンのIDE(read <1.0)でコンパイルボタンをクリックするときにShiftキーを押したままにすると、コンパイラアーティファクトを見つけることができます。新しいバージョン(read> = 1.0)では、コンパイル中に詳細出力を表示するためのオプションが設定ダイアログの下にあります(スクリーンショットを参照)。詳細出力では、すべてのコンパイラー出力が最終的に作成されるフォルダーがコンソールに(繰り返し)出力されます。これで少なくとも始められるはずです。

スクリーンショットarduinoはコンパイル中に詳細な出力を表示します

余談ですが、2012年6月の初めにArduino開発者リストにこの件に関するあらゆる種類のおしゃべりがあり、誰かがArduino開発者リストにArduinoのGDBデバッグの改善/統合方法に関するアナウンスを投稿しましたが、私は調査していませんそれははるかに。プロジェクトの名前はVisualMicro(?)だと思います。それはVisual Studioプラグインとして構築されているように見えるので、Linux環境では役に立たないかもしれませんが、それに加えてベータ版ですが、私が決定させてください。


「コンパイル時に詳細出力を有効にする」を有効にすると、ビルドディレクトリとして/tmp/build3652385594823436592.tmp/のようなものが使用されます。また、エルフは-gフラグでビルドされているため、デバッグシンボルを含める必要があります。つまり、ビルドアーティファクトが見つかったので、jtagを機能させる必要があります。
ヨハン

3

Simavr AVRプロセッサシミュレータは、Arduinoを含むAVRのファームデバッグに優れたGDBサーバーを提供します。単独で使用することも(特定のハードウェア構成用に小さなコンソールアプリケーションを作成する必要があります)、回路図キャプチャを介してハードウェア構成を定義できるSimutron GUI環境内から使用することもできます。

注:これらのツールでは、すべてのハードウェアがシミュレーションされるため、物理的な接続はありません。


2

これは、同様の質問で参照されているLinuxジャーナルの記事で回答されています:JtagデバッグAVR

基本的に、avr-gdbとsimulavrを組み合わせて使用​​すると、GDBを使用して実行中のコードをステップ実行し、監視しながら、シミュレータを介して選択したAVRマイクロコントローラーでソフトウェアを実行できます。

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.