• Rocket


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

     

    简单介绍TLDebugModuleInner中Program Buffer寄存器的实现。

     

     

    1. programBufferMem

     

    1) 定义

     

    以字节为单位的Program Buffer寄存器:

     

    2) 复位值

     

    dmactive为假时,其值为0:

     

    2. programBufferNxt

     

    用于存放programBufferMem寄存器的将要使用的值。

     

    3. 寄存器组

     

    programBufferMem是一组寄存器,使用RegFieldGroup来定义:

    这段代码针对programBufferMem中的每一个字节生成一个读写逻辑:

    a. 读直接使用programBufferMem中相应字节作为数据源;

    b. dmiProgramBufferRdEn(i)读指示标志;

    c. 写的数据先存入programBufferNxt中的相应字节中;

    d. dmiProgramBufferWrEnMaybe(i)为写指示标志;

     

    4. dmi写入

     

    Program Buffer寄存器可以使用dmi接口访问:

    只有正在写入,并且针对Program Buffer的访问合法时,才可以把programBufferNxt中的值存入对应的Program Buffer寄存器中。

     

    5. shadow

     

    Program Buffer同样可以使用核心总线访问,也就是映射到核心可以访问的地址空间中:

    核心针对PROGBUF的读写,直接针对programBufferMem进行。

     

    6. 附录

     

  • 相关阅读:
    2017ICPC沈阳赛现场赛 L-Tree (dfs)
    2019西北工业大学程序设计创新实践基地春季选拔赛 D(卢卡斯定理)
    Codeforces Round #454 (Div. 1) CodeForces 906D Power Tower (欧拉降幂)
    模板
    洛谷
    模板
    洛谷
    洛谷
    模板
    模板
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12492873.html
Copyright © 2020-2023  润新知