zoukankan      html  css  js  c++  java
  • Rocket

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

     

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

     

     

    1. ABSTRACTCSReset

     

    寄存器复位时使用的值:

     

    其定义如下:

    其中,datacount和progbufsize的值从配置中获取。

     

     

    2. ABSTRACTCSReg

     

    带结构的寄存器:

     

    3. 写

     

    1) ABSTRACTCSWrDataVal

     

    ABSTRACTCSWrDataVal是一个不带结构的32位值:

     

    用于接收写寄存器时传入的数据:

     

    2) ABSTRACTCSWrData

     

    ABSTRACTCSWrData是把写入的32位值解析之后的带结构的变量:

     

    3) ABSTRACTCSWrEnMaybe

     

    ABSTRACTCSWrEnMaybe是一个标志位:

     

    用于指示是否正在写入寄存器:

     

     

    4) ABSTRACTCSWrEnLegal

     

    ABSTRACTCSWrEnLegal是一个标志位:

    用于表明ABSTRACTCSWrEnMaybe中的Maybe是否合法。

     

    5) ABSTRACTCSWrEn

     

    ABSTRACTCSWrEn标志着是否正在合法写入:

     

    4. 读

     

    1) ABSTRACTCSRdData

     

    ABSTRACTCSRdData是读取寄存器时使用的数据源:

     

    其值又来自于ABSTRACTCSReg:

     

    2) ABSTRACTCSRdEn

     

    用于标志是否正在读取寄存器:

     

    其值在写入时为真:

     

    5. cmderr

     

    1) 设置

     

    根据errorBusy等的值,决定abstractcs.cmderr的值:

     

    2) 清除

     

    写1清零:把写入值中的cmderr取反再与原值相与,即可清除写1的位,保留写0的位:

     

    6. busy

     

    busy位标志着是否有抽象命令正在执行,从abstractCommandBusy中取值:

    而abstractCommandBusy的值则根据状态机确定。

     

  • 相关阅读:
    LeetCode Best Time to Buy and Sell Stock
    LeetCode Scramble String
    LeetCode Search in Rotated Sorted Array II
    LeetCode Gas Station
    LeetCode Insertion Sort List
    LeetCode Maximal Rectangle
    Oracle procedure
    浏览器下载代码
    Shell check IP
    KVM- 存储池配置
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12492749.html
Copyright © 2011-2022 走看看