32ビットArmとThumbコード
このセクションの内容:
32ビットの場合、IAR C/C++コンパイラfor Armは、32ビットのArm、または16ビットのThumbまたはThumb2命令セットのどちらかのコードを生成できます。‑‑cpu_modeオプション、あるいは‑‑armまたは‑‑thumbオプションを使用して、プロジェクトで使用する命令セットを指定します。個々の関数に対して、拡張キーワード__armおよび__thumbを使用して、プロジェクト設定をオーバライドできます。ArmおよびThumbコードが同じアプリケーションに混在しても問題はありません。
関数呼び出しを実行する場合、コンパイラは、使用できる最も効率的なアセンブラ言語命令または命令シーケンスを生成しようとします。そのため、範囲0x0-0xFFFF'FFFFの連続する4 GBのメモリがコードの配置に使用されます。コードモジュールあたり4MBという制限があります。
すべてのコードポインタのサイズは4バイトです。コードポインタからデータポインタや整数型、およびその逆の場合での暗黙的および明示的なキャスティングには制限があります。制限の詳細については、ポインタ型を参照してください。
「アセンブラ言語インタフェース」では、アセンブラ言語からのC関数の呼び出し、およびその逆の方法に関する説明で、生成されるコードを詳しく説明しています。