7.coresight的两大功能
作者:互联网
coresight具有两大功能,一个是debug,一个是trace。
1、debug
debugger通过DAP,来实现debug功能。
1.1、单core的debug系统:
一个DAP,加上一个AP和APBIC。外部对DP访问,DAP将DP访问,转化为AP访问,AP通过APBIC,生成AP总线,通过bridge,对ARM core中的debug资源,或者挂接在debug APB上的coresight组件,进行访问。
1.2、多core的debug系统:
一个DAP,DAP内实现了多个AP,这些AP实现jtag或memory-mapped方式访问debug资源。
外部对DP访问,DAP将DP访问,转化为APB AP或者JATG AP访问,如果是jtag访问,直接通过JTAG AP,以jtag方式,对连接到该jtag上的处理器进行访问。
如果是APB访问,通过APX mux,判断对处理器访问呢,还是挂接在debug APB总线上的coresight组件进行访问,如果对处理器访问,经过APB bridge对处理器进行访问。如果对挂接在debug APB总线上的coresight组件进行访问,那么就直接进行访问。
下图是debug组件,在coregisht系统中的位置。
2、trace
2.1、 单core的简单trace系统
下图是单core的简单trace系统,只有一个trace源。
只有一个trace源(ETM),因此中间都不需要trace link组件,trace源直接将trace信息输出给trace sink(TPIU)。因为只有一个trace源,因此也不需要trace formatters。
2.2、 单core的高级trace系统
下图是单core的高级trace系统,拥有用个trace源。
有多个trace源(ETM,STM),因此中间需要trace link组件(funnel),funnel合并trace信息,发送给replicators,replicators再分发给trace sink(TPIU,ETB)。因为有trace link组件,因此trace sink需要trace formatters,将trace数据格式化,得到真正的数据。
2.3、 多core的高级trace系统
有多个core,每个core有自己的trace组件。因此会包含很多trace功能的coresight组件。
3、多cluster的完整coresight系统
下图是一个多cluster的完整的coresight系统。
系统中有两个cluster:
◾system1,以processor作为主设备。这个系统中包括了coresight的多个组件,debug组件,trace组件,trigger组件。
◾system2,以DSP作为主设备。这个系统中包括了coresight的多个组件,debug组件,trace组件,trigger组件。
两个子系统通过interconnect连接到一起,实现相互间的通信以及访问外部外设。同时两个子系统的CTM和外部的CTM连接到一起,实现两个子系统之间的event的相互传输。
整个系统中,包括一个DAP,DAP中有一个DP,SWJ-DP(jtag和sw协议转化),和两个AP,AHB-AP(产生AHB总线), APB-AP(产生APB总线)。
AHB-AP产生的AHB总线,直接连接到系统中的interconnect上,就可以访问连接到interconnect的外部外设(如memory)。
APB-AP产生的APB总线,连接到两个子系统的debug apb上,实现对子系统的coresight组件的寄存器访问。如ETM,CTI,HTM,funnel等。同时APB总线还连接到了系统的debug apb上,实现对系统的coresight组件的寄存器访问。如funnel,ETB,TPIU,CTI等。
两个子系统的trace信息,通过各自的funnel输出到系统的funnel上,funnel对两个子系统的trace信息进行合并,然后输出给replicator。replicator将接收的trace信息,广播给ETB和TPIU。TPIU在通过trace port将信息输出到外部。
标签:功能,trace,AP,访问,两大,组件,coresight,debug 来源: https://blog.csdn.net/l471094842/article/details/116305021