zoukankan      html  css  js  c++  java
  • ARMV8 datasheet学习笔记4:AArch64系统级体系结构之Self-hosted debug

    1. 前言

    2. 关于self-hosted debug

    • Debugger调试器

    是操作系统或系统软件的一部分,它会处理debug exception或修改debug system register,debugger运行在EL0,提供了用户debugger接口;

    • Debugger异常

    Debugger异常是在程序正常运行过程中由debugger编程PE来产生,满足如下两个条件,PE可以产生某个特定的异常:

    (1)当前的异常级别和安全状态下使能了debug异常;

    (2)Debugger使能了某个特定的debug异常

    • Debug异常类型

    (1)Break-point instruction异常:在程序流的特定点可以引起异常的指令,不能被mask,A64下为BRK#<immediate>;

    (2)breakpoint异常:提供2-16个breakpoint异常,可以基于特定的指令地址或特定的PE上下文通过编程产生的异常;

    (3)watchpoint异常:提供2-16个watchpoint异常,可以基于访问特定的数据地址或访问一个地址范围的数据;

    (4)vector catch异常:只能在AArch32 translation regime???下产生;

    (5)software step异常:运行在高异常级别的软件可以debug低异常级别的软件,被debug的软件每单步执行一条指令,PE会捕获software step异常;

    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异常使能

    (1)       如下两种情况debug异常被禁用:

    a. 当前异常级别 > (EL1 or EL2)

    breakpoint instruction异常之外的debug异常被禁用;

    b. 当前异常级别 == (EL1 or EL2):

    local debug enable bit(即MDSCR_EL1.KDE==0,breakpoint instruction异常之外的debug异常被禁用;

    debug exception mask bit(PSTATE.D)==1,breakpoint instruction异常之外的debug异常被禁用

    (2)其它情况debug异常均使能

    • 当前secure state的debug异常使能

    (1)如果MDCR_EL3.SDD==1,则debug异常被禁用;

    (2)其它情况下,debug异常均使能

     6. 参考文档

    [1] DDI0487A_k_armv8_arm_iss10775.pdf

  • 相关阅读:
    PHPCMS 商品浏览记录及其遇到的问题
    9月10日
    phpcms v9 数据库操作函数
    html Meta (整合)
    不同内核浏览器的差异以及浏览器渲染(转)
    position属性absolute与relative(转载)
    html规范,某人总结
    切图神器Assistor PS(PS外挂神器,亲证免费可用,下面是转载的使用方法)
    Android开发学习笔记:圆角的Button
    sublime text 2 技巧
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6847613.html
Copyright © 2011-2022 走看看