首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM Processor Exception

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, 或者更老旧的使用断点的处理器, 只要异常向量处的指令被执行, 即进入调试模式,
而无须考虑异常发生与否。
返回列表