2016-10-26 11 views
1

非常に制約の厳しいSparc V8ベースのシステムでコンパイルしようとしているCコードがあります。私はgccを使用しており、以下の質問をしたいと思います。gccを使用してSparc用のCコードを小さくして画像サイズを小さくする

1)デバッグをオフにすること(-gフラグ)以外に、コンパイルオブジェクトのサイズを小さくする必要がありますか?

2)ARMには親指モードがありますが、Sparcには同様の機能がありますか?

3)コンパイルされたバイナリオブジェクトのサイズを減らすために、他のコンパイラオプション(またはCコードのトリック)を使用できます。

もう一度gccを使用しています。

答えて

2

-Oでコンパイルします。サイズの最適化を意味します。 コードの一部ができるだけ速く実行されることになっている場合は、__attribute__((optimize("-O2")))を使用して特定の機能を速度最適化することができます。

最適化フラグの説明については、以下のリンクを参照してください:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

+2

私は '__attribute __(optimize(...))'を推奨しません。ドキュメントには、 "この属性はデバッグの目的でのみ使用する必要があります。 –

+1

また、インライン展開はコードサイズを減らすことがあり、 '-Os'はコンパイラにサイズを増やすときにインライン化しないように指示します。 –

+0

これは良いコメントです! – Xofo

1

1)マットが言ったように:http://www.gaisler.com/doc/sparcv8.pdf:コードサイズ縮小

2)号のために使用-Osフラグは、ここでマニュアルを見てください

3)この記事をお読みくださいhttps://github.com/contiki-os/contiki/wiki/Reducing-Contiki-OS-firmware-size 非常に熟練したエンジニアが作成したContiki OSプロジェクトの推奨サイズです。 Contiki OSは、通常はGCCでコンパイルされた埋め込みCプロジェクトですので、あなたの問題に適用されます。

+0

ありがとうございました@Felipe Lavratti – Xofo

+0

@ xofoあなたは大歓迎です。 –

関連する問題