ARM - 使用 16 位数据总线获取 32 位数据

ARM - Fetching 32 bits of data using 16-bit data bus

在我们的嵌入式平台上,有些设备有16位的数据总线(比如FPGA)。但是,我们需要将它们读取为 32 位值(例如 32 位浮点数)。

我的理解是,当32位数据加载指令(LDR)访问16位内存时,ARM处理器将执行2次16位读取到assemble一个32位数量.

这是正确的吗?

例如,我希望 ARM 处理器从具有 16 位数据总线的设备加载一个 uint32_t 值,而不必进行 2 uint16_t 读取然后组合 uint16_t 值转换为一个 uint32_t 变量。

我们是否需要显式获取 2 个 16 位数量,然后 assemble 作为 32 位数量?

哪些 ARM 文档包含此说明?

是否有任何特定的 ARM 配置设置可以让 ARM 从 16 位数据总线进行 2 次获取以形成 32 位数量(在寄存器中)?

仅供参考:我们正在使用 ARM Cortex A8 和 IAR EW IDE/Compiler。
该平台是 运行 是 "system" 模式而不是 "thumb" 模式。

如果是访问内存,当CPU需要32位内存时,会直接请求(Cortex-A8不支持16位总线)。一些外设(在系统中)负责将32位请求转换为16位以适应总线(Doing 2 transfers)。

这意味着对于CPU应该是完全透明的。