Board logo

标题: ARM Processor Exception [打印本页]

作者: look_w    时间: 2017-10-24 21:22     标题: 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, 或者更老旧的使用断点的处理器, 只要异常向量处的指令被执行, 即进入调试模式,
而无须考虑异常发生与否。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0