Rocket

https://mp.weixin.qq.com/s/adSB7lmKcqmwVd80-gmdIw

 

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

 

 

1. ABSTRACTAUTOReset

 

寄存器复位时使用的值:

 

当dmactive为假时,存入寄存器中:

 

2. ABSTRACTAUTOReg

 

带结构的寄存器:

 

3. 写

 

1) ABSTRACTAUTOWrDataVal

 

不带结构的32位值:

 

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

 

2) ABSTRACTAUTOWrData

 

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

 

3) ABSTRACTAUTOWrEnMaybe

 

ABSTRACTAUTOWrEnMaybe是一个标志位:

 

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

 

4) ABSTRACTAUTOWrEnLegal

 

ABSTRACTAUTOWrEnLegal是一个标志位:

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

 

5) ABSTRACTAUTOWrEn

 

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

 

4. 读

 

1) ABSTRACTAUTORdData

 

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

 

其值又来自于ABSTRACTAUTOReg:

 

2) ABSTRACTAUTORdEn

 

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

 

其值在写入时为真:

 

5. autoexecprogbuf

 

 

其值由用户写入:

 

6. autoexecdata

 

同autoexecprogbuf。

 

7. dmiAbstractDataAccess

 

1) dmiAbstractDataAccessVec

 

dmiAbstractDataAccessVec是一组掩码,表示是否存在对Abstract Data寄存器中每一个字节的读写访问:

 

dmiAbstractDataWrEnMaybe和dmiAbstractDataRdEn是读写的标志位:

 

2) dmiAbstractDataAccess

 

表示是否存在对Abstract Data寄存器的访问:

 

8. dmiProgramBufferAccess

 

1) dmiProgramBufferAccessVec

 

同dmiAbstractDataAccessVec。

 

2) dmiProgramBufferAccess

 

同dmiAbstractDataAccess。

 

9. autoexec

 

1) autoexecData/autoexecProg

 

autoexecData/autoexecProg分别是一组掩码,每个掩码标志着是否存在访问,同时是否要求存在访问时自动执行抽象命令:

 

2) autoexec

 

将所有掩码或在一起,以表示是否需要执行抽象命令:

             

 

原文地址:https://www.cnblogs.com/wjcdx/p/12492811.html