1. 前言
2. 关于self-hosted debug
- Debugger调试器
- Debugger异常
- Debug异常类型
3. Debug异常使能控制
breakpoint instruction异常 | 总是使能的; |
breakpoint异常 | MDSCR_EL1.MDE, plus an enable control for each breakpoint, DBGBCR<n>_EL1.E |
watchpoint异常 | MDSCR_EL1.MDE, plus an enable control for each watchpoint, DBGWCR<n>_EL1.E |
vector catch异常 | MDSCR_EL1.MDE |
software step异常 | MDSCR_EL1.SS |
4. Debug异常路由
- EL1和EL2都是debug异常的目标异常级别;
- 通常情况下debug异常被路由到EL1;
- 如果实现了EL2,且MDCR_EL2.TDE==1 且debug异常来自于non-secure,则异常被路由到EL2
5. Debug异常使能
当前异常级别和安全状态下满足如下4个条件则debug异常使能:
- OS lock解锁??
- DoubleLockStatus() == FALSE???
- 当前异常级别的debug异常使能
- 当前secure state的debug异常使能
6. 参考文档
[1] DDI0487A_k_armv8_arm_iss10775.pdf