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异常路由

  1. EL1和EL2都是debug异常的目标异常级别;
  2. 通常情况下debug异常被路由到EL1;
  3. 如果实现了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

04-25 18:15