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的更多相关文章

  1. SWD接口:探索&泄密&延伸

    http://bbs.21ic.com/icview-871133-1-1.html 文买了个JLINKV9,以为神器,拿到手发现根本不是,完全没必要替换V8,想自己做个另类的调试器,当然想只是想而已 ...

  2. Serial Wire Debug (SWD) Interface -- PSoc5

    PSoC 5 supports programming through the serial wire debug (SWD) interface. There are two signals in ...

  3. Introduction to Cortex Serial Wire Debugging

    Serial Wire Debug (SWD) provides a debug port for severely pin limited packages, often the case for ...

  4. 如何在 arm 官网上找到合适的手册

    http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...

随机推荐

  1. Http响应code

    Http响应报文 HTTP响应也由三个部分组成,分别是:状态行.消息报头.响应正文. 其中,HTTP-Version表示服务器HTTP协议的版本:Status-Code表示服务器发回的响应状态代码:R ...

  2. PHP运行错最有效解决办法Fatal error: Out of memory (allocated 786432) (tried to allocate 98304 bytes) in H:\freehost\zhengbao2\web\includes\lib_common.php on line 744

    原文 PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312) Fatal error: Out of memory (allocated ...

  3. [LeetCode]题解(python):054-Spiral Matrix

    题目来源 https://leetcode.com/problems/spiral-matrix/ Given a matrix of m x n elements (m rows, n column ...

  4. The All-purpose Zero---hdu5773(LIS变形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773 题意: 给出n个数,其中 0 可当作任何数,求能够得到的最长上升子序列(严格上升)的长度; 我们 ...

  5. NSPredicate 根据谓语动词 进行 模糊查询

    /** *  模糊查询 */ NSString *filterString = textField.text; NSPredicate *predicate = [NSPredicate predic ...

  6. imx6 lvds 代码分析

    查看imx6 kernel中lvds设备和驱动的初始化过程. 相关文档: arm/arm/mach-mx6/board-mx6q_sabresd.c kernel/drivers/video/mxc/ ...

  7. $.ajax所犯的错误。success后面不执行

    $.ajax({ type: 'post', url: '../AshxHandler/HandlerAddPhoto.ashx', data: { clientPath: photoName }, ...

  8. 执行sql失败之后,再次执行的时候提示:ora-02429:无法删除用于强制唯一/主键的索引

    SQL 1:select segment_name,partition_name,tablespace_name from --显示出表的主键的表空间是:SYSTEM --以下是生成删除主键约束的脚本 ...

  9. C# 调用C++动态链接库

    项目中需要调用一个 USB接口的设备,用WPF写上位机,设备提供了C++的动态链接库. 按照已找到的资料,将 .dll  .h  和相关依赖项都放在 程序的运行目录中,执行,会报错,找不到“XXX.d ...

  10. [RGEOS]支持栅格数据读取和显示

    SharpMap真的很强大,这里通过改造GdalRasterLayer类实现了在RGeos项目中支持栅格图像的读取和显示,同时支持影像的无级缩放. GdalRasterLayer通过读取FWTools ...