如何在 ARMv7 中故意导致预取中止

how to intentionaly cause a prefetch abort in ARMv7

我正在尝试测试为 ARMv7 中的异常处理编写的代码。我需要测试预取中止 functionality.I 知道当未经授权访问受保护的内存区域时可能会发生这种情况。但是要检查某些内存区域是否受到保护并尝试访问它似乎很困难。是否有任何程序集快捷方式或代码片段可确保发生预取中止异常。

如果您尝试从不存在的内存区域执行代码,则会发生预取中止。换句话说,如果程序计数器设置为无效地址,就会发生这种情况。

检查您设备的内存映射并在您的代码中给出以下指令:

BL non-existent-memory-location