2012年8月19日日曜日

TLMu で ARM Linux

■ TLMu で ARM Linux
http://www.hdlab.co.jp/web/a050consulting/b009armcpumodel/ から環境をダウンロードして動かしてみた。

環境は、Ubuntu 12.04
- systemc-2.2.0.tgz
- TLM-2.0.1.tgz
- scml-2.1.1-pv-20111213.tgz
を利用し、tlmu_arm_example/INSTALL に従ってインストールを行う。

ただし、途中 g++ のコンパイルで mutable のエラーに何度かあうので -fpermissive を付けた。

tlmu.20120529/Makefile.target で、--whole-archive オプションがあるとエラーになるので外した。

tlmu_arm_example で、LIBS に pthread を追加。また、ライブラリの順序を変えないとコンパイルが通らなかった。また、hdlab_lib/ip/versatile_vic.c cpp で、uint32_t が未定義だと言われたので、typedef unsigned int uint32_t; を追加。


無事コンパイルが通り、./run.x を実行すると xterm が立ち上がり linux が起動できた。

追記1:buildroot により作成されるルートファイルシステムには、/lib 以下が空になっているので、共有ライブラリを参照しているプログラムは動かない(busybox 以外のプログラムは基本的に動かない)。buildroot/output/toolchain/uClibc-<version>/lib/*.so* を /lib にコピーする必要がある。

追記2:起動した Linux でファイルを作成しても、Linux を起動し直すと作成したファイルは消えてしまっている。シミュレーション開始時に ramdisk.img をメモリ上に読み込んでいるが、シミュレーションした結果をもとの ramdisk.img に書き戻していないためである。

0 件のコメント:

コメントを投稿