2010/02/26

ARMソフトのエミュレーション環境構築

最近は組込みの仕事をしているとARMをターゲットとした開発をする機会が多いと
思いますが、家で勉強したくてもボード等を用意して環境が整えるのはなかなか
難しいですね。。

と言うわけで、私はこの前VirtualBoxにインストールしたGentoo Linux上にクロス
コンパイル & エミュレーション環境を作って勉強することにしましたw

以下、構築手順の覚書です。

1 CPUエミュレータ QEMUのインストール
シェルからemerge qemu、と打ってQEMUをインストールします。
安定版の0.9.1はgcc version 4ではコンパイルできず面倒なのでマスクをはずして
0.11.1をインストールしてしまいました。


2 クロスコンパイル環境の構築
まず、crossdevをインストールします。
emerge crossdev

次に/opt/crossdevというディレクトリを作成し、/etc/make.confに下記の行を
追記します。
PORTDIR_OVERLAY="/opt/crossdev"

最後に下記のコマンドを叩いてしばし待ちます・・・。
crossdev --ex-gdb -t arm-gentoo-linux-gnueabi

3 ARM用バイナリの作成
定番のHello, worldプログラムを用意し、下記のコマンドでコンパイルします。
arm-gentoo-linux-gnueabi-gcc -Wall -g test.c

4 デバッグしてみる
QEMUのユーザーモードエミュレーション機能を使って、プログラムを実行します。
qemu-arm -g 1234 -L /usr/arm-gentoo-linux-gnueabi a.out
このように-gオプションをつけるとGDBの接続を待つことができます。

次にGDBを起動します。
arm-gentoo-linux-gnueabi-gdb a.out

そしてGDB上から以下のように打ちます。
(gdb) target remote localhost:1234

これで無事接続できれば、GDBによるデバッグが可能になります。



0 件のコメント:

コメントを投稿