ARM Processor Exception

ARM Processor Exception


虽然依赖于硬件实现,当一个给定的预定义事件发生时, 大多数ARM处理器都提供了专用硬件来进入调试模式。


大多数较新的ARM处理器提供了捕捉异常的硬件单元。 如果使能该硬件单元,其效果类似于在选定的向量表入口

放置一个断点, 这被成为是 vector catch。 然而,


1) 一些ARM处理器, 例如 ARM7, 没有提供向量捕捉硬件。 对于这些处理器, 调试硬件用指令断点来模拟它。


2) 对于Cortex-M3, 其等同于在目标向量放置一个断点。 Cortex-M3 具有一个有限的向量捕捉集合。


3) 如果异常向量位于 ROM 中, 调试硬件必须使用硬件断点来模拟向量捕捉。

如果该处理器不具有向量捕捉支持, 这将减少能为其他目的提供的硬件资源数量。


当调试硬件模拟一些早期的ARM处理器, 但是这些处理器又不具有向量捕捉硬件支持,

如果向量表位于 RAM 中间, 这时调试硬件使用软件断点。


当调试期间发生系统 RESET 时, 必须特别注意。 一些被调试目标硬件会在 RESET 后改变内存布局,

因此含有软件断点的物理内存地址可能不在正确的复位地址。

(译者注: u-boot 在运行时的重定位也类似。 因此在重定位前后, Trace32 debugger 必须手动计算一下新的地址偏移量)


如果被调试硬件使用软件指令断点来模拟复位向量, 下述警告信息可能被输出到你的调试器终端:

Warning: A software breakpoint is being used to simulate reset vector catch.
This may fail to be hit if the memory is remapped when a reset occurs.


ARM 向量捕捉的精确行为取决于处理器。 ARM9 处理器仅在特定的异常发生时菜金如调试模式。

其他处理器,比如 ARM11, 或者更老旧的使用断点的处理器, 只要异常向量处的指令被执行, 即进入调试模式,

而无须考虑异常发生与否。





你可能感兴趣的:(ARM)