なんとかなるさね

マイコンをネタにブログを始めてみました


QEMU | UbuntuのARMユーザランド + ARM Linux GDBでARM Linux Arduinoスケッチをデバッグ→△ 

UbuntuのQEMUのLinux ARMユーザランドエミュレーションモードに組み込まれたGDBSERVER機能を使って、
いつものLinux Arduinoスケッチ(sketch_jan10a.cpp.elf /dev/ttyS1 /dev/ttyS2 /dev/ttyS3)をデバッグ出来
るか試してみました。残念ながら以下の問題に遭遇してしまい、まだ思うように動かすことが出来ていません。

* main()関数に設定したブレークポイントでは停止するが、setup()関数やloop()関数では停止しない
* 実行を開始した後、GDBから^Cキーで実行を中断させることが出来ない

(1) 起動は出来るものの、、、



(2) main()関数に設定したブレークポイントでは停止するが、setup()関数やloop()関数では停止しない。
  停止しないので、最後まで実行してしまった後、スケッチが終了する。(ファイルが見つからないのは、
  Windows上でビルドしたからです。ファイルが見つからない件は、とりあえず、後回しにします。)



(3) GDBから^Cキーで実行を中断させることが出来ない。
  停止しないので、2回目の^Cキーに対し、GDBがデバッグ作業をギブアップするかどうか尋ねてくる。
  ギブアップせずにデバッグ作業を継続すると、最後まで実行してしまった後、スケッチが終了する。



なお、Linux Arduino互換ライブラリのソースコードをLinaro ARM Linux GCC 4.7でビルドした手順は、以前の
エントリ
で書いたものと基本的に同じです。(ただし、stripコマンドを実行しないようにスキップさせています。)
また、試したスケッチも、以前の別のエントリで書いたものと同じです。

UbuntuのQEMUのLinux ARMユーザランドエミュレーションモードのインストールは、以前のエントリで試した
通りです。また、今回試したARM Linux GDBは、ルネサスRZ/A1Lマイコン搭載のコンピューテックス社製評価
ボードCEV-RZ/A1LのCEV Linux SDK V1.00.00に含まれていたx86 Linux版Linaro ARM Linux Cross GDBです。

関連記事

2014/02/05   blog-entry-416   category: Arduino Lib & CrossGCC

go page top