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



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

我的理解是,当32位数据加载指令(LDR)访问16位内存时,ARM处理器将执行2次16位提取,以组装32位数量。

这是正确的吗?

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

我们是否需要明确地获取2个16位的数量,然后组装为32位的数量?

哪些ARM文件包含此澄清?

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

仅供参考:我们正在使用ARM Cortex A8和IAR EW IDE/编译器
平台运行的是"系统"模式,而不是"拇指"模式。

如果您正在访问内存,当CPU需要32位内存时,它会直接请求(Cortex-A8不支持16位总线)。一些外围设备(在系统中)负责将32位请求转换为16位以适应总线(进行2次传输)。

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

相关内容

  • 没有找到相关文章

最新更新