zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA

     

    简单介绍TLDebugModuleInner的实现。

     

     

    1. 引入全局配置

     

    1) cfg

     

    引入DebugModulePrams:

     

    2) hartSelFuncs

     

    定义hartsel与hart id之间的映射函数:

     

    2. 多个diplomacy node

     

    1) dmiNode

     

    dmiNode是一个寄存器节点,包含除了DMCONTROL/HAWINDOWSEL/HAWINDOW三个寄存器之外的0x000~0x1FF的地址空间:

     

    DMCONTROL/HAWINDOWSEL/HAWINDOW这三个寄存器在TLDebugModuleOuter中实现:

     

    2) tlNode

     

    tlNode也是一个寄存器节点,提供对地址0x000~0xFFF的访问:

    需要注意的是这段地址空间是可执行的:executable=true;

     

    3) customNode

     

    用于实现抽象命令对自定义寄存器的访问:

     

    3. 内部包含一个LazyModule: sb2tlOpt

     

    根据hasBusMaster的配置值决定是否包含一个SystemBusAccessModule:

     

    4. lazy module实现

     

    用于实现调试模块的主要功能,包括抽象命令(Abstract Command)和Program Buffer。

     

    1) io

     

    这些IO基本上都从Outer取得输入值:

     

    因为内容过多,如下部分另文介绍:

    2) Registers coming from 'CONTROL' in Outer

    3) DMI Registers - DMSTATUS

    4) DMI Registers - HARTINFO

    5) DMI Registers - HALTSUM*

    6) DMI Registers - ABSTRACTCS

    7) DMI Registers - ABSTRACTAUTO

    8) DMI Registers - COMMAND

    9) DMI Registers - Abstract Data

    10) DMI Registers - Program Buffer

    11) Program Buffer Access

    12) ROM Generation

    13) Abstract Command Decoding & Generation

    14) Drive Custom Access

    15) Hart Bus Access

    16) Abstract Command State Machine

    17) DMI Register Control and Status

    18) Variable ROM STATE MACHINE

     

  • 相关阅读:
    [USACO07DEC]观光奶牛Sightseeing Cows
    洛谷 U3348 A2-回文数
    LOJ #2037. 「SHOI2015」脑洞治疗仪
    1441 士兵的数字游戏
    BZOJ 1108: [POI2007]天然气管道Gaz
    P3047 [USACO12FEB]附近的牛Nearby Cows
    POJ 3061 Subsequence
    Hdu 5776 sum
    1052 最大M子段和
    1288 埃及分数
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12433046.html
Copyright © 2011-2022 走看看