ADIv5.2
ADI:ARM Debug Interface,出到现在共有五代:
1)version1 and version 2:只针对ARM7TDMI和ARM9的processor;
2)version 3:只针对ARM10的processor family;
3)ADIv4:使用与所有的ARMv6 architecture;
4)ADIv5.2:针对ARMv7-A和ARMv8-A的processor;分为了Access Port(AP) architecture和Debug Port(DP) architecture
DP包括三类:1)JTAG-DP; 满足IEEE 1149.1的接口;
2)SW-DP; 基于packet-based protocol(host-target req, target-host ack, data transfer)
3)SWJ-DP; can switch between SWD and JTAG
AP包括两类:1)MEM-AP(扩展到AXI/ACE); a memory-mapped resource such as a debug peripheral
2)JTAG-AP; a legacy jtag device
DP来连接外部的host,AP来访问内部的debug component registers
由
ADIv5 DAP
CoreSight components
CoreSIght debug architecture
能提供的功能包括:
1)Embedded core debug functionality,由arm core和ETM这样的module来保证
1)modify the contents of the internal registers and the memory system;
2)read the contents of the internal registers and the memory system;
3)program debug events,在某个event被触发之后,processor可以由外部可控;
4)Force the processor to enter and exit debug state;
5)Trace program flow around programmable events;
2)System debug functionality,系统性的debug
1)Components within an embeded SoC
program trace
cross-triggering mechanisms
2)The interconnection fabric of the system
trace access on the interconnection fabric
从DP到AP的access:
由AP_Select选择不同的AP,
address的A[7:4]选择不同的bank;
address的A[3:2]选择不同的register;
四个寄存器保存每个ap的一些信息

在DP的implement过程中,
首先选择不同的DP接口:

选择每个JTAG-AP的JTAG scan chain的个数;
选择每个scan chain中包含的TAP的个数,主要是为了嵌套扩展;
在AP的implement过程中,
首先选择MEM-AP或者JTAG-AP,
在架构方面。可以选择MEM-AP直接连接到debug register file或者system bus再连接到debug register file,
结合ROM_TABLE进行MEM-AP的address map以及bus width的决定。




从DP到MEM-AP的access的路径图:
前半部分的memory map与DP到AP的相同,
但是到mem-ap的部分,必须有一个rom table来进行寄存器的访问。

同样的DP到JTAG-AP的路径图:
TDO的信号经过一个mux来回到jtag的接口ap中。

ADIv5.2的更多相关文章
- SWD接口:探索&泄密&延伸
http://bbs.21ic.com/icview-871133-1-1.html 文买了个JLINKV9,以为神器,拿到手发现根本不是,完全没必要替换V8,想自己做个另类的调试器,当然想只是想而已 ...
- Serial Wire Debug (SWD) Interface -- PSoc5
PSoC 5 supports programming through the serial wire debug (SWD) interface. There are two signals in ...
- Introduction to Cortex Serial Wire Debugging
Serial Wire Debug (SWD) provides a debug port for severely pin limited packages, often the case for ...
- 如何在 arm 官网上找到合适的手册
http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...
随机推荐
- Mysql 按行dump出数据
mysqldump -u${user} -p${passwd} --skip-extended-insert --database ${dbname} --table ${tablename} > ...
- php--.prop()
.prop() 获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性. .prop()方法只获得第一个匹配元素的属性值 .如果元素上没有该属性,或者如果没有匹配 ...
- RepositoryItemComboBox 用法1
RepositoryItemComboBox cbbEnd = new RepositoryItemComboBox(); cbbEnd.TextEditStyle = DevExpress.Xtra ...
- 去除undefined和末尾逗号及把字符串数字转成数字数组的方法
function removeundefined(str){ var v=new Array(),b=""; var tmp=fil(str); for(var i=0;i ...
- LightOj1418 - Trees on My Island(Pick定理)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1418 题意:给你多边形中的顶点,n个点按顺时针或逆时针方向给出,然后求出多边形内部有多 ...
- windows 访问 ubuntu虚拟机 django服务器 失败
配置ubuntu配置成桥接,在ubuntu虚拟机中运行django.py开发服务器.windows访问django失败. 虚拟机运行: python manage.py runserver 0.0.0 ...
- synzhronized原理3
1.java中的每个对象都可作为锁,有三种表现形式: 对于普通方法,锁的是当前this对象. 对于静态方法,锁的是class对象 对于方法块,锁的是synchronized指定的对象. 2.JVM基于 ...
- ByteBuffer
1.堆内:HeapByteBuffer,在java的堆内创建. 缺点:可能引起堆的不断gc 写文件的时候需要先将堆的buffer写进直接buffer里,然后再写入文件 2.堆外:DirectByteB ...
- No mapping found for HTTP request with URI [] in DispatcherServlet with name 'appServlet'
项目是使用SpringMVC (1)在浏览器中访问,后台总报错: No mapping found for HTTP request with URI [] in DispatcherServlet ...
- iOS基础
1.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用? readwrite 是可读可写特性:需要生成getter方法和s ...