Tweet


* ARM Thumb 命令セット busybox のコンパイル [#g263ce44]

昨日,ToDo を書き出してみたら大変そうで少し萎えたので,今回は趣向を変えて「ざっくりやってみた」系で行ってみます.
アセンブリコードをちくちく見るのも少し飽きてきたしね.

というわけで,
> busybox を thumb 命令でコンパイル

に挑戦.

** 環境 [#fa859b35]
:CPU|Marvell 88F5182 (I-O DATA HDL-GXR)
:カーネル|Linux 2.6.28-rc9
:ユーザランド|debian lenny
:ABI|EABI

** 条件 [#scfe854b]
- ソースは busybox-1.15.2.tar.bz2 を使用
- make menuconfig のオプションは手を付けずにデフォルト設定でコンパイル
-- ただし,thumb バイナリを生成する時は,CFLAGS に -mthumb -mthumb-interwork を付けるように指示する

** 結果 [#lba62b00]

プログラムサイズはこんな感じです.

 $ ls -l busybox-*
 -rwxr-xr-x 1 imai imai 834984 2009-11-20 06:44 busybox-arm
 -rwxr-xr-x 1 imai imai 622548 2009-11-20 21:27 busybox-thumb

サイズは 75% 程度 = 25% 削減になってますね.

で,thumb の実行ファイルも実行してみました.

 $ ./busybox-thumb sh
 $ ls
 AUTHOR            arch                    editors     printutils
 Config.in         archival                examples    procps
 INSTALL           busybox-arm             findutils   runit
 LICENSE           busybox-thumb           include     scripts
 Makefile          busybox_unstripped      init        selinux
 Makefile.custom   busybox_unstripped.map  libbb       shell
 Makefile.flags    busybox_unstripped.out  libpwdgrp   sysklogd
 Makefile.help     console-tools           loginutils  testsuite
 README            coreutils               mailutils   util-linux
 TODO              debianutils             miscutils
 TODO_config_nommu docs                    modutils
 applets           e2fsprogs               networking
 $ exit

sh と ls は動作しました :)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS