据我了解,ARMv7处理器(例如Cortex-A9)大多与旧版ARM体系结构版本的代码向后兼容。但是,例如,我已阅读segfaults trying to run ARM9 code on a Cortex-A8的报告。

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

最佳答案

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

09-10 23:16