ARMv4/5/6代码的哪些部分不适用于ARMv7?

bwD*_*aco 5 arm cpu-architecture backwards-compatibility binary-compatibility

据我所知,ARMv7处理器(如Cortex-A9)大多向后兼容旧版ARM架构版本的代码.但是,我已经阅读过有关尝试在Cortex-A8上运行ARM9代码的段错误的报告.

ARMv4/5/6(ARM7TDMI/ARM9/ARM11)代码的哪些部分在ARMv7处理器上不起作用?这些较旧的ARM体系结构版本中存在哪些功能或体系结构特征可能导致为这些版本构建的程序在ARMv7上失败?

Tim*_*win 4

对于应用程序代码来说,主要问题是未对齐的内存访问。在 ARMv4 之前以及在 ARMv4 到 ARMv6 上可配置的情况下,来自未对齐地址的 LDR 加载将导致读取数据轮换,并且其他内存访问的行为就像地址的最低有效 2 位为零一样。