2

at91sam7s256 (マイクロコントローラー) 用の小さなプログラムを開発するために、atmel の j lynch チュートリアルに従っています。私は少し手を加えて、arm-elf (古いもの) の代わりに arm-none-eabi を使用しました。デフォルトでは、チップについて何も言及していなくても、gcc が -march=armv4t を想定してコンパイルすることがわかりました。-mcpu=arm7tdmi を使用すると、どれくらいの違いがありますか?

Googleでたくさん検索しても、個別のリンカーオプション、アセンブラー、および-MAPなどのobjcopyオプションを含むオプションのようなすべての可能なコマンドを説明する詳細なチュートリアルを見つけることができませんでした.

すべての可能性が説明されているような資料を提供できますか?

4

1 に答える 1

1

特定のプロセッサに関する情報を提供すると、最も効率的な命令の組み合わせと、それらの命令を最も効率的にスケジュールする方法を選択するための追加情報がコンパイラに提供されます。-mcpu を明示的に指定すると、どの程度のパフォーマンスの違いが生じるかは、特定のプロセッサに大きく依存します。違いはまったくありません。知る唯一の方法は、測定することです。

ただし、一般に、特定のデバイス用の特定のイメージをビルドする場合は、コンパイラにできるだけ多くの情報を提供する必要があります。

注: gcc の現在のインスタンスは、 -march=armv4t を想定してコンパイルされます。これは、すべての arm gcc ツールチェーンに対する普遍的な保証ではありません。

于 2013-08-05T08:09:20.947 に答える