首页 > 其他 > 详细

Rocket - debug - TLDebugModuleInner - ABSTRACTCS

时间:2020-03-14 16:46:32      阅读:77      评论:0      收藏:0      [点我收藏+]

Rocket - debug - TLDebugModuleInner - ABSTRACTCS

 

简单介绍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的值则根据状态机确定。

 

Rocket - debug - TLDebugModuleInner - ABSTRACTCS

原文:https://www.cnblogs.com/wjcdx/p/12492749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!