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

时间:2016-10-06 09:06:17

标签: memory assembly arm embedded boot

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

1 个答案:

答案 0 :(得分:3)

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

检查设备的内存映射,并在代码中提供以下说明:

BL non-existent-memory-location