• Rocket


    https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw

     

    简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态。

     

     

    1. abstractCommandBusy

     

    表示是否处于等待状态,如果不是在等待状态,则视为Busy:

     

    2. ABSTRACTCSWrEnLegal

     

    如果正处于等待状态,则可以合法写入ABSTRACTCS寄存器:

     

    3. COMMANDWrEnLegal

     

    如果正处于等待状态,则可以合法写入COMMAND寄存器:

     

    4. ABSTRACTAUTOWrEnLegal

     

    如果正处于等待状态,则可以合法写入ABSTRACTAUTO寄存器:

     

    5. dmiAbstractDataAccessLegal

     

    如果正处于等待状态,则可以合法写入Abstract Data寄存器:

     

    6. dmiProgramBufferAccessLegal

     

    如果正处于等待状态,则可以合法写入Program Buffer寄存器:

     

    7. errorBusy

     

    如果写寄存器的时候不是等待状态,则出现错误,错误在于调试模块正忙,置位errorBusy:

     

    8. commandWrIsAccessRegister

     

    表示调试器写入的抽象命令的类型是不是AccessRegister:

     

    9. commandRegIsAccessRegister

     

    表示当前抽象命令寄存器中的抽象命令的类型是不是AccessRegister:

     

    10. commandWrIsUnsupported

     

    表示调试器写入的抽象命令不是AccessRegister,当前仅支持这一种命令类型:

     

    11. commandRegIsUnsupported

     

    commandRegIsUnsupported是一个标志位,如果没有更改其值,则为真:

     

    如果抽象命令寄存器中的命令是AccessRegister,考虑把commandRegIsUnsupported的值置为假,也就是支持该命令:

     

    这分为三种情况:

    a. 读Custom源节点的寄存器:当命令为read transfer时,命令被支持;亦即write transfer不支持;

    b. 如果transfer为0,命令也支持;

    这是一种特殊情况,也就是直接执行Program Buffer中的指令。需要配置transfer为0,postexec为真:

    这种情况下,生成的抽象命令是两条nop指令。

     

    c. 根据截断式或的特性,此时transfer为真。在transfer为真的情况下,无论write是何值,当访问的是GPR时是支持的。亦即,访问其他寄存器是不被支持的:

     

    12. commandRegBadHaltResume

     

    commandRegBadHaltResume是一个标志位:

     

    表示核心的halt/resume状态是否是错误的:

    如果抽象命令是AccessRegister:

    a. 如果核心处于暂停状态,则不是错误的;

    b. 如果核心不处于暂停状态,则是错误的;

     

    13. accessRegIsGPR

     

    accessRegIsGPR表示访问的寄存器是GPR:

     

    仅支持访问GPR寄存器:

     

    14. accessRegIsCustom

     

    accessRegIsCustom表示访问的是Custom源节点的寄存器:

     

    15. wrAccessRegisterCommand

     

    表示向抽象命令寄存器中合法写入了命令,将要生成抽象命令并执行:

     

    16. regAccessRegisterCommand

     

    如果抽象命令寄存器中的是合法指令,并且触发了执行抽象命令(autoexec),就像刚写入抽象命令一样:

     

    可以生成抽象命令并执行:

                 

     

     

  • 相关阅读:
    java并发之阻塞队列
    37二叉树的深度+变式题输出最长路径上的所有节点
    36数字在排序数组中出现的次数
    35 两个链表的第一个公共结点
    34 数组中的逆序对+改进低效归并排序
    33 第一个只出现一次的字符+ASCII码
    编程练习赛42+二维动态数组的输入总结
    32 丑数
    在Ubuntu中启动./jmeter-server报错Server failed to start: java.rmi.RemoteException: Cannot start. ranxf is a loopback address.解决方法
    Ubuntu&Linux系统出现文件系统只读Read-only file system 的快速解决方法
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12595331.html
Copyright © 2020-2023  润新知