我根据官方网站提供的debug手册,来对DTM模块进行分析。
下面我主要分析一下DTM的几个常用的寄存器。
在这里插入图片描述

1、IDCODE

在这里插入图片描述
version: 版本号
partnumber: 设计者的part number
manufld:设计师/制造商
最后一位是1,这个是固定不变的。

2、DTM Control and Status

在这里插入图片描述
dmihardreset:强制复位整个dtm,传输的数据丢失
dmireset:复位目前传输的错误,让dtm可以继续未完成的数据
idle:给debugger提示用
dmistat:目前dtm的状态(重要)
abits: dmi的address所占的bit数
version:0的时候,spec版本为0.11 。1的时候,spec版本为0.13

3、Debug Module Interface Access

在这里插入图片描述
address:用于DMI访问的地址
data: DMI把存放在这里的数据传递给DM
op:
为0时,当作nop使用
为1时,从address读取
为2时,把data写入address

4、BYPASS

在这里插入图片描述
将调试器不想与TAP通信的时候,需要设置这一位。

5、总结

经过上面的分析,可以看出

  1. 主要读取IDCODE这个寄存器,可以得到一些重要的信息
  2. 对dtmcs寄存器进行操作,可以对DTM进行控制,同样也可以得到某些所需的状态信息。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐