思いますが、家で勉強したくてもボード等を用意して環境が整えるのはなかなか
難しいですね。。
と言うわけで、私はこの前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によるデバッグが可能になります。