4

さまざまな ARM プロセッサ用のインライン アセンブリを使用して単純なプログラムをクロスコンパイルしようとしています。このドキュメントによれば、有効なARMおよびThumb-2命令の両方であるアセンブリ命令QSUBが含まれています。

これは、cortex-a8 用にビルドするときに問題なくコンパイルされます。

cortex-m3 用にビルドしようとすると、タイトルにコンパイル エラーが表示されますが、その理由がわかりません。コンパイラ スイッチ -mthumb を使用してサム モードを強制しようとすると、エラーが「選択したプロセッサはサム モードをサポートしていません」に変わります。実際、cortex-m3 は親指モードをサポートしているため、少し混乱しています。

codesourcery の gcc で使用しているコンパイル オプションは次のとおりです。

arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3
4

2 に答える 2

4

TIによると、 cortex-a8に最適なgccフラグは次のとおりです。

-march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -ffast-math -mfloat-abi=softfp

http://processors.wiki.ti.com/index.php/Cortex-A8

于 2012-08-30T08:59:51.913 に答える
4

QSUBARM の「Cortex-M3 Devices Generic User Guide」(ドキュメント DUI0552A)には記載されていません。

また、TI の「Cortex-M3/M4F 命令セット、テクニカル ユーザーズ マニュアル」QSUBには、Cortex-M3 ではサポートされていないことが示されて います。

GCCがあなたに言っていることを信じなければならないと思います...

于 2012-03-06T19:44:24.233 に答える