皆さん、ARM Cortex-A8 プロセッサ用にコンパイルしたプロジェクトがあります。これを行うためにGCCを利用しています。現在、実行可能ファイルのサイズは 220.1 KB です。ここで、makefile を変更し、フラグを追加し-mthumb
ます。makefile の行は次のようになります。
gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon
すべてのメイクファイルでこの変更を行い、プロジェクトをビルドしましたが、最終的に取得した実行可能ファイルは依然として 220.1 KB のままです。
コマンドラインにもう1つ変更を加え、 -mthumb-interwork オプションを追加しました
gcc -mcpu=cortex-a8 -mthumb -mthumb-interwork -marm -mfloat-abi=softfp -mfpu=neon
もう一度、同じサイズの 220.1 KB の実行可能ファイルを取得します。これをしている間、私は何かを見逃していますか?
2 つの数値の最小値を見つける小さなプログラムを作成し、次のコマンド ラインを使用してコンパイルしました。
gcc main.c -o main
8.5 KB の実行可能ファイルを取得します
次に、私は
gcc -mthumb main.c -o main
まだ 8.5 KB の実行可能ファイルを取得しています。
ここで何が問題なのですか?
cat /proc/cpuinfo
親指がプロセッサで本当にサポートされているかどうかを確認したところ、実際にサポートされていることがわかりました。わかった -
Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....