技术标签: 封测 数字IC # Linux调试 测试 DFX 量产 IC CP DEBUG
因为coresight属于ARM制定的标准,因此ARM针对coresight,设计出来soc-400套件。设计人员可以利用这个套件,快速的生成coresight系统,并且生成相应的case,对coresight系统进行验证。
coresight soc-400系统框图:
这个套件中,可以利用AMBA-designer来自动生成coresight的组件,只需要更改一些配置信息即可自动生成。
DAP的一般结构:
SWJ-DP和外部的sw或jtag通信,然后和DAPBUS通信。实现对各个AP的访问。然后各个AP再对片内内部资源进行访问。
SWJ-DP包括两个DP,一个是SW-DP,一个是JTAG-DP。
下图是DAP的内部结构,包含一个DP,5个AP。
DAP将外部接口数据(external interface format),也就是SW协议数据或者JTAG协议数据,转化为内部的接口数据(internal interface),也就是AP访问数据。
将jtag或sw总线协议,转化为dap总线。
接收jtag或sw数据**,如果是对DP访问,直接在内部对DP的寄存器进行访问**。如果是对AP的访问,转化为dap总线,对后级所接的AP进行访问。
组件,还提供了两个power域的上电请求(system power和debug power),以及debug域的复位请求。
对于两个power域的信号,每个信号都是1bit信号。
信号 | 作用 |
---|---|
cdbgpwrupreq | DAP向power控制器发送的debug power域的上电请求以及时钟使能信号 |
cdbgpwrupack | power控制器向DAP回应的debug power域的上电请求以及时钟使能响应信号 |
csyspwrupreq | DAP向power控制器发送的system power域的上电请求以及时钟使能信号 |
csyspwrupack | power控制器向DAP回应的system power域的上电请求以及时钟使能响应信号 |
debugger通过控制这些信号,来实现对debug power域和system power域的上电以及时钟使能请求操作。
而控制这些信号,是通过写DA的CRTL/STAT寄存器来实现。
该寄存器的31-28bit。
在实际中,可能power域是断电,或者时钟是关掉的。此时debugger要对这个power域中的组件进行访问,就需要将该power域给开启以及将时钟给开启。此时就需要这些信号。
两个power域的请求信号是独立的,因为两个power域都是独立的,互不干扰。
当REQ信号变高后,表示要power up,power控制器应该将ACK信号拉高,表示响应该请求。而REQ信号变低后,表示要power down,power控制器应该将ACK信号拉低。
对于debugger,可以访问该寄存器,读取ACK的值,即可知道该power域是否有上电。
reset也是一样的。DAP可以请求复位debug域的寄存器。也是通过CTRL/STAT寄存器来控制。
时序如下:会驱动PRESETDBGn信号为低,从而实现debug复位。
连接DP和后续的所有AP。组件会根据DP的select寄存器,决定是对哪一个AP进行访问,从而生成对该AP访问的总线。
对于地址dapcaddrs[15:2]:
dapcaddrs[15:8]:是select寄存器的最高8位的值,也就是AP的选择
dapcaddrs[7:2]: 访问AP寄存器的地址
AXI的master,访问该AP,可以发起AXI访问。输入DAP总线,输出AXI总线。
APB的master,访问该AP,可以发起APB访问。输入DAP总线,输出APB总线。
APB互联组件,连接了众多的coresight组件,外部可以通过APB互联,实现对连接到APB互联上的coresight组件的访问。
以下是APB互联组件框图:
APB互联组件包括以下的一些互联组件。
每个APB互联组件,至少连接一个rom table组件,并且该组件的地址为0x0000_0000,这样外部通过rom table,在能知道连接到该APB互联组件上的所有coresight组件信息。
coresight组件,和APB互联的时钟,可能是异步的,因此需要一个异步桥,进行转换。
coresight组件,和APB互联的时钟,可能是同步,但是不是同频,因此需要一个同步桥,进行转换。
ATB互联组件包括以下的一些互联组件
replicator用来将上级的master发送的ATB数据,传输给下级的两个ATB slave组件。
结构如下图所示:
总共有4个port:
ATB slave port:接收上一级的ATB master的ATB数据
optional APB port:配置replicator的APB总线端口,外部通过该APB总线设置replicator。
ATB master port0:输出给master0的ATB总线
ATB master port1:输出给master1的ATB总线
将多个ATB输入,合并成一个ATB输出。
结构如下图所示:
3个port:
ATB slave port:接收上级的ATB总线,至少有两组
optional APB port:配置funnel的APB总线端口,外部通过该APB总线设置funnel。
ATB master port:输出给master的ATB总线
将输入的数据位宽为SBW+1的ATB总线,转换为数据为数据位宽为MDW+1的ATB总线。MDW >= SBW。
ATB_DATA_WIDTH_SLAVE: 8,16,32,64
ATB_DATA_WIDTH_MASTER: 8,16,32,64
将输入的数据位宽为SBW+1的ATB总线,转换为数据为数据位宽为MDW+1的ATB总线。MDW <= SBW。
ATB_DATA_WIDTH_SLAVE: 8,16,32,64
ATB_DATA_WIDTH_MASTER: 8,16,32,64
跨时钟域(异步时钟)的数据转换桥。
将时钟为clks的ATB总线,转换为时钟为clkm的ATB总线。
跨时钟域(同步时钟)的数据转换桥。
将时钟为clks的ATB总线,转换为时钟为clknm的ATB总线。
timestamp组件,用来生成时间信息的。
组件,根据SCLK,产生计数值,然后发送给各个coresight组件,这样各个组件就有了时间信息。
ECT包括CTI和CTM。
CTI用来接收和发送trigger,channel信号用。
trigger interface:连接需要发送trigger,接收trigger的组件
channel interface:连接CTM,接收CTM发送的channel,以及发送channel到CTM上
APB interface: 配置CTI的APB总线,外部通过该APB总线,设置CTI
CTM,连接各个CTI。
trace port interface ,接收trace信息,发送trace信息到片外。
debug apb port:配置TPIU的APB接口,外部通过APB总线,设置TPIU。
ATB slave port: 接收trace source或trace link的trace数据
trace port:芯片的输出管教,输出信息给外界
trigger port: 连接CTI。
内部结构如下图:
接收ATB发送的trace信息,通过formatter,将数据转化,得到真正的数据信息,保存在FIFO中。
因为有2个时钟域,一个是片内的时钟域,一个是片外的时钟域,因此该FIFO是异步FIFO,写是在atclk时钟域写入,读是在traceclkin时钟域读取。读取之后,通过trace out,将数据以串行方式,从接口发送出去。
APB接口,是TPIU向外部提供了配置TPIU寄存器的APB接口。
embedded trace buffer。存储trace信息的buffer。
内部结构如下:
接收ATB发送的trace信息,通过formatter,将数据转化,得到真正的数据信息,然后通过trace RAM interface,将数据,保存到trace RAM中。
APB接口,是ETB向外部提供了配置ETB寄存器的APB接口。
power requestor可以让外部通过APB总线控制指定power domain的上电和断电。从而控制指定的coresight组件的power。
coresight-400,其实就是ARM实现coresight系统的套件,包含了coresight的各个组件,我们利用这个套件,就不再需要自己单独去设计以及验证这些coresight组件,直接拿过来,搭建soc环境。并且coresight-400组件,还提供了一些测试case,可以用来验证搭建的coresight系统,是否正确。
更多的信息,查看ARM提供的coresight-400组件文档。
自此,ARM的coresight介绍到此完毕,附件是整合的文档。
感谢骏哥Coresight的分享,获益匪浅!
文章浏览阅读168次。代码:#include <iostream>#include <cstring> using namespace std;class Student{public:Student(char* pName="no name",int ssId=0){ strncpy(name,pName,40); name[39]='\0'; id = ssId; cout <&..._class student{public:student(char* pname = "no name"){strcpy(name, p
文章浏览阅读2.3k次。ColorPicker一款仿Photoshop取色器的Android版取色器。github地址:ColorPicker前言上一篇已经简单介绍了ColorPicker的项目结构以及两种颜色空间,接下来我们详细解析一下ColorPicker的核心自定义控件ColorPickerView。ColorPickerView在阅读代码之前,我们先看一下ColorPicker的布局以及一些标注的数值在代码里的变量_android 仿ps吸管效果
文章浏览阅读1.2k次,点赞2次,收藏4次。计算机系统结构复习(一):Introduction概述体系结构发展新趋势定量分析/量化研究方法计算机种类摩尔定律什么是计算机系统结构两个概念计算机系统结构与计算机组成、实现的关系体系结构发展新趋势1.新的模型:Data-level parallelism (DLP):数据级并行Thread-level parallelism (TLP):线程级并行Request-level parallelism (RLP):满足用户需求的并行2.开源架构 RISC-V3.Domain-Specific A_data-level parallelism
文章浏览阅读897次。更新你的无线网卡驱动到最新版本15.68.9032.47,重启。或者运行regedit修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\mrvlpcie8897,找到值 “TXAMSDU”把它从1改为0。转载于:https://www.cnblogs.com/misstaste/p/5898571.html..._surface pro 4 无线网卡
文章浏览阅读4.2k次。Chinese_rules.cf的使用方法:下载Chinese_rules.cf,把该规则放在SpamAssassin存放规则的目录(一般在/usr/share/spamassassin或/usr/local/etc/mail/spamassassin)。通过wget下载的命令如下:wget -N -P /usr/share/spamassassin www.service-labs.com/dow_spamassassin 中文规则
文章浏览阅读349次,点赞10次,收藏11次。2.SQL语句可以使用空格/缩进来增强语句的可读性。1.SQL语句可以单行或多行书写,以分号结尾。3.MySQL数据库的SQL语句不区分大小写。
文章浏览阅读3.8k次,点赞4次,收藏4次。(1)我们经常需要创建一些包含等间距数值的向量,例如以下向量。y = [5 6 7 8]y = 5 6 7 8任务:创建一个名为x(2)对于长向量,输入单个数值是不实际的。可用来创建等间距向量的替代便捷方法是使用:运算符并仅指定起始值和最终值。y = 5:8y = 5 6 7 8请注意,当您使用冒号运算符时,不需要方括..._matla间隔相等的向量
文章浏览阅读5.9k次。Git的相关操作,创建、更新、提交等,代码托管在码云上一、环境配置:(1)下载安装Git Bash,具体步骤就不赘述了;(2)双击运行“Git Bash”,配置用户名及邮箱:$ git config --global user.name "xxxxxxx"$ git config --global user.email "[email protected]"_使用git提交代码,git commit -m ' ' 提交、同步代码之后,在码云上备注是乱码。怎
文章浏览阅读1.4k次。一、数据结构与线程构造方法由于已经看到了ThreadPoolExecutor的源码,因此很容易就看到了ThreadPoolExecutor线程池的数据结构。图1描述了这种数据结构。图1 ThreadPoolExecutor 数据结构其实,即使没有上述图形描述ThreadPoolExecutor的数据结构,我们根据线程池的要求也很能够猜测出其数据结构出来。_线程之 1.7 doacquiresharedinterruptibly解析
文章浏览阅读4.8w次,点赞3次,收藏21次。快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器。我们一步一步进入这个过程。一、简陋的获取图片方式1234567891011_图片 src和onload 哪个快
文章浏览阅读6.3k次。严重: 在路径为/book的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常java.lang.ClassNotFoundException:这种报错,除了其他人的:还有一种可能:名字不一样,哪怕是空格哪怕是一个空格!..._严重: 在路径为/bookmanage的上下文中,servlet[jsp]的servlet.service()引发了具
文章浏览阅读6.2k次。frida-ios-dump源码地址:GitHub - AloneMonkey/frida-ios-dump: pull decrypted ipa from jailbreak devicefrida-ios-dump是基于frida开发的一键砸壳工具,需要配置frida环境手机配置1)越狱状态2)安装openssh3)安装fridaMac配置1)安装frida,命令行:sudo pip install frida-tools (没有安装pip的话需要先安装pip)_ios砸壳需要 闪退怎么砸