Rocket - debug - TLDebugModuleInner - ABSTRACTAUTO
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
将所有掩码或在一起,以表示是否需要执行抽象命令: