我有一个为我在 QEMU 中运行的 arm 编译的简单应用程序。例如,当我有如下指令时,我对内存对齐错误感兴趣:
ldr r3, =0xa0000001
ldr r4, [r3]
我启用了 MMU 并启用了对齐检查:
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #0x3
mcr p15, 0, r0, c1, c0, 0
gdb
但是当处理器执行上面的指令时,不会调用我的 DATA ABORT 异常处理程序(我已经验证它可以在其中工作) ldr
。仿真核心是 ARMv5TE。可能是什么问题呢?