Rocket - debug - TLDebugModuleInner
https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA
简单介绍TLDebugModuleInner的实现。
1. 引入全局配置
1) cfg
引入DebugModulePrams:
2) hartSelFuncs
定义hartsel与hart id之间的映射函数:
2. 多个diplomacy node
1) dmiNode
dmiNode是一个寄存器节点,包含除了DMCONTROL/HAWINDOWSEL/HAWINDOW三个寄存器之外的0x000~0x1FF的地址空间:
DMCONTROL/HAWINDOWSEL/HAWINDOW这三个寄存器在TLDebugModuleOuter中实现:
2) tlNode
tlNode也是一个寄存器节点,提供对地址0x000~0xFFF的访问:
需要注意的是这段地址空间是可执行的:executable=true;
3) customNode
用于实现抽象命令对自定义寄存器的访问:
3. 内部包含一个LazyModule: sb2tlOpt
根据hasBusMaster的配置值决定是否包含一个SystemBusAccessModule:
4. lazy module实现
用于实现调试模块的主要功能,包括抽象命令(Abstract Command)和Program Buffer。
1) io
这些IO基本上都从Outer取得输入值:
因为内容过多,如下部分另文介绍:
2) Registers coming from 'CONTROL' in Outer
3) DMI Registers - DMSTATUS
4) DMI Registers - HARTINFO
5) DMI Registers - HALTSUM*
6) DMI Registers - ABSTRACTCS
7) DMI Registers - ABSTRACTAUTO
8) DMI Registers - COMMAND
9) DMI Registers - Abstract Data
10) DMI Registers - Program Buffer
11) Program Buffer Access
12) ROM Generation
13) Abstract Command Decoding & Generation
14) Drive Custom Access
15) Hart Bus Access
16) Abstract Command State Machine
17) DMI Register Control and Status
18) Variable ROM STATE MACHINE
Rocket - debug - TLDebugModuleInner的更多相关文章
- Rocket - debug - TLDebugModuleInner - Hart Bus Access
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...
- Rocket - debug - TLDebugModuleInner - DMI Register Control and Status
https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abs ...
- Rocket - debug - TLDebugModuleInner - Abstract Command State Machine
https://mp.weixin.qq.com/s/RcXI8uEHvZHGCvX3DoVR4Q 简单介绍TLDebugModuleInner中处理抽象命令时的状态机. 1. CtrlState 定 ...
- Rocket - debug - TLDebugModuleInner - Drive Custom Access
https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...
- Rocket - debug - TLDebugModuleInner - ROM Generation
https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...
- Rocket - debug - TLDebugModuleInner - Program Buffer Access
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. ...
- Rocket - debug - TLDebugModuleInner - Program Buffer
https://mp.weixin.qq.com/s/kjhJJ3moRQzxHt6pJOXEgg 简单介绍TLDebugModuleInner中Program Buffer寄存器的实现. 1. pr ...
- Rocket - debug - TLDebugModuleInner - Abstract Data
https://mp.weixin.qq.com/s/DOLkEi-_qQt6lWOhJ2hxVQ 简单介绍TLDebugModuleInner中抽象数据寄存器的实现. 1. abstractData ...
- Rocket - debug - TLDebugModuleInner - COMMAND
https://mp.weixin.qq.com/s/Lz_D43YdhbRhiGiyoCBxDg 简单介绍TLDebugModuleInner中COMMAND寄存器的实现. 1. COMMANDRe ...
- Rocket - debug - TLDebugModuleInner - ABSTRACTAUTO
https://mp.weixin.qq.com/s/adSB7lmKcqmwVd80-gmdIw 简单介绍TLDebugModuleInner中ABSTRACTAUTO寄存器的实现. 1. ABST ...
随机推荐
- springboot关于webmvc配置问题记录
在之前的文章(springboot配置静态资源访问路径)中说过,springboot默认的加载静态资源的地方是在resources目录下的static文件夹下,其实除了resources目录下得sta ...
- java读源码之 Queue(ArrayDeque,附图,希望能一起交流)
除了并发应用(并发包下的代码我之后会专门写),Queue在JavaSE5中仅有的两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为而不是性能.1.6时新增了一个实现Ar ...
- 仿站-获取网站的所有iconfont图标
在仿站过程中,网站的iconfont查找非常浪费时间,这里教大家一次性获取网站iconfont的方法 1.打开 开发者工具 在element中搜索font-face,结果如下,复制font-face所 ...
- GroupJoin()各参数的意义及用法
EF Core中GroupJoin的注释比较复杂: public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey ...
- requestAnimationFrame/cancelAnimationFrame——性能更好的js动画实现方式
用js来实现动画,我们一般是借助setTimeout或setInterval这两个函数,css3动画出来后,我们又可以使用css3来实现动画了,而且性能和流畅度也得到了很大的提升.但是css3动画还是 ...
- SpringBoot 整合SpringBatch实际项目改造
SpringBoot整合SpringBatch项目,已将代码开源至github,访问地址:https://github.com/cmlbeliever/SpringBatch 欢迎star or fo ...
- 通过 docker images 获取 Dockerfile
通过docker image 获取到 dockerfile docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |s ...
- 基于Redis的Nginx服务器集群session共享
原料:jdk1.8,tomcat7,nginx1.16,Redis3.2.100,Redis-Tomcat需要的jar包,基于windows7. Redis3.2.100与Redis-Tomcat需要 ...
- LSTM的备胎,用卷积处理时间序列——TCN与因果卷积(理论+Python实践)
什么是TCN TCN全称Temporal Convolutional Network,时序卷积网络,是在2018年提出的一个卷积模型,但是可以用来处理时间序列. 卷积如何处理时间序列 时间序列预测,最 ...
- ES6---面向对象上的简化
一.ES6---面向对象上的简化 1.单个对象提供了2处简化: 1.1 如果对象的属性来自于对象外的变量,且变量名刚好和属性名相同.则不用写两遍相同的名字, 只要写一遍即可. 1.2 所有对象的方法, ...