https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw

简单介绍TLDebugModuleInner中的针对Custom的访问。

1. customNode

customNode定义为DebugCustomSink类型的节点:

根据DebugCustomSink的定义,customNode所属的模块为调试模块:

这与customNode所属的模块为TLDebugModuleInner相符。

Custom相关节点到连接图如下,供参考:

2. needCustom

needCustom标志着是否需要生成Custom逻辑:

其中到两个条件为:

a. 包含一个以上的输入边;

b. 包含一个以上的地址可供访问;

customNode代表调试模块,customNode.in代表与被调试模块到连接。这两个条件到意义也就是存在被调试模块,被调试模块存在可被访问到地址。

3. accessRegIsCustom

accessRegIsCustom表示抽象命令访问到寄存器是否属于Custom节点:

其中:

a. 如果customNode没有输入边,也就是没有被调试模块,则直接返回假;

b. 如果存在输入边,则把访问到寄存器地址与输入边中的地址相比较;

这里只比较了customNode.in.head的地址,也就是第一个输入边相对应到模块到地址。难道不能有多个被调试模块吗?

可以有,他们都通过DebugCustomXbar与调试模块相连,所以与调试模块相连到也就只有DebugCustomXbar这一个模块了:

DebugCustomXbar也限定了只有一个输出边连接一个Sink节点:

也就是只有一个调试模块与之相连。

4. goCustom

在检测生成的命令阶段,如果访问到寄存器地址在Custom源节点,那么会进入Custom状态:

否则,进入命令执行状态。也就是命令由Custom相关节点执行。

在Custom状态,设置goCustom为真:

如果custom.ready和custom.valid同时为真,也就是命令执行结束(数据从Custom源节点返回),就进入下一个状态(Waiting)。

5. Drive Custom Access

抽象命令中的寄存器编号就是要访问的地址(custom.addr):

根据地址是否属于Custom源节点(goCustom)确定custom.valid是否为真。

6. abstractDataMem

当数据从Custom源节点返回时,将其存入abstractDataMem中:

参考注释:

最新文章

  1. 关于CSV文件 Excel打开乱码问题的解决方案
  2. Linux添加开机启动命令
  3. jQuery初探 jQuery选取和操纵元素的特点
  4. C# C++联调
  5. Zabbix简介(第一章第一节)
  6. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
  7. [King.yue]Ext.JS 弹出窗体取值赋值
  8. Java中数组的初始化方式
  9. LINUX 内核代码 errno 错误代码提示 /include/asm/errno.h
  10. Bogo排序
  11. Womany女人迷 | 氪加
  12. 关于Dropdownlist使用的心得体会
  13. hdu1029
  14. bi api 软件
  15. 面试阿里前端P6血和泪换来的收获
  16. Windows下U盘管理程序
  17. SQLServer之删除视图
  18. hdu 5116--Everlasting L(计数DP)
  19. python(45)内置函数:os.system() 和 os.popen()
  20. 纯CSS绘制的三角形箭头图案【原创】

热门文章

  1. 错误:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.
  2. 如何将项目上传至GitHub?
  3. quartus II Warning 好的时序是设计出来的,不是约束出来的
  4. aui移动端UI库
  5. Git与GitHub常用操作
  6. 对background: url("~assets/img/common/collect.svg") 0 0/14px 14px 的理解
  7. 漫谈Huawei LiteOS五大内核模块
  8. Python内置函数示例
  9. MYSQL8 常用操作
  10. 贝叶斯优化(Bayesian Optimization)只需要看这一篇就够了,算法到python实现