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

最新文章

  1. Tomcat基本入门知识及发布,虚拟访问及启动碰到的错误,虚拟目录,虚拟路径,各种Tomcat的配置
  2. Google Zxing 二维码生成与解析
  3. [译]git rebase
  4. linux动态网络和静态网络和克隆后的网络配置
  5. jquery滚动到指定元素,模仿锚点
  6. protubuf在cocos2dx的应用安装
  7. 开发wordpress主题
  8. 20162321王彪-实验二-Java面向对象程序设计
  9. 微信小程序 canvas导出图片模糊
  10. leetcode-数组中只出现一次的数字
  11. ERROR in static/js/0.5d7325513eec31f1e291.js from UglifyJs
  12. C#项目中操作Excel文件——使用NPOI库
  13. 七、Json格式的对象都可以通过遍历来获得里面的value值
  14. PS调出春夏外景婚纱照
  15. JVM 学习集合
  16. Effective Objective-C 笔记之熟悉OC
  17. Maven报错找不到jre
  18. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)
  19. [AngularJS] Angular 1.3 ngMessages with ngAnimate
  20. php 计算本周星期一、本月第一天 本月最后一天 下个月第一天

热门文章

  1. TSP变形(三进制状压)
  2. B. Heaters 思维题 贪心 区间覆盖
  3. 王颖奇 20171010129《面向对象程序设计(java)》第十五周学习总结
  4. vue滑动吸顶以及锚点定位
  5. C:习题1
  6. Python 图像处理 OpenCV (1):入门
  7. CSS学习—day1
  8. .NET 程序员的 Playground :LINQPad
  9. 【Leetcode】1340. Jump Game V 【动态规划/记忆性搜索】
  10. 「雕爷学编程」Arduino动手做(13)——触摸开关模块