当社の組み込みプラットフォームでは、一部のデバイスには 16 ビットのデータ バス (FPGA など) があります。ただし、それらを 32 ビット値 (32 ビット浮動小数点など) として読み取る必要があります。
私の理解では、16 ビット メモリが 32 ビット データ ロード命令 (LDR) によってアクセスされると、ARM プロセッサは 2 つの 16 ビット フェッチを実行して 32 ビット量を組み立てます。
これは正しいです?
たとえば、ARM プロセッサがuint32_t
16 ビット データ バスを使用してデバイスから値をロードし、2 回uint16_t
の読み取りを行わずにuint16_t
値を 1 つのuint32_t
変数に結合できるようにしたいと考えています。
2 つの 16 ビット量として明示的にフェッチしてから、32 ビット量としてアセンブルする必要がありますか?
この説明が含まれている ARM ドキュメントはどれですか?
ARM が 16 ビット データ バスから 2 つのフェッチを行い、32 ビット量 (レジスタ内) を形成するための特定の ARM 構成設定はありますか?
参考: ARM Cortex A8 と IAR EW IDE/コンパイラを使用しています。
実行中のプラットフォームは「サム」モードではなく「システム」モードです。