さまざまな 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