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です。
いつもの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です。
- 関連記事
-
- SHマイコン基板(SH7216) | HEWプロジェクトのArduino互換ライブラリソースをe2studioで読む (1)
- OSエミュレータ | Intel Galileo LinuxバイナリをWindows上でAtratusを使って実行しようとして失敗
- OSエミュレータ | LinuxバイナリをWindows上で実行するAtratusというソフトウェアを試してみた (2)
- OSエミュレータ | LinuxバイナリをWindows上で実行するAtratusというソフトウェアを試してみた→×
- QEMU | VMware Player上のUbuntuでMinGW32 GCCをapt-getしてインストールしてみた
- QEMU | ARM (Linux非対応) Insight-7.4でARM Linux Arduinoスケッチをデバッグ
- QEMU | UbuntuのARMユーザランド + ARM Linux GDBでARM Linux Arduinoスケッチをデバッグ (2)
- QEMU | UbuntuのARMユーザランド + ARM Linux GDBでARM Linux Arduinoスケッチをデバッグ→△
- QEMU | UbuntuのネイティブなGDBSERVERをインストールして動かしてみた
- QEMU | Ubuntuのchroot機能とマルチアーキテクチャ機能を使ってARM Linux Arduinoスケッチを実行
- QEMU | Ubuntuのchroot機能でCEV-RZ/A1L Linuxのルートファイルシステムをエミュレーション
- QEMU | Ubuntuのマルチアーキテクチャ機能を使ってARM Linux Arduinoスケッチを実行
- QEMU | CEV Linux SDK V2.00.00 GCC 4.7でビルドしたARM Linux ArduinoスケッチをQEMUで実行
- QEMU | Linaro ARM Linux GCC 4.7でビルドしたARM Linux ArduinoスケッチをQEMUで実行
- Arduino IDE | Linux Arduino互換ライブラリをCEV Linux SDK V2.00.00 GCC 4.7でビルド→正常終了
2014/02/05 blog-entry-416 category: Arduino Lib & CrossGCC
| h o m e |