Chinaunix首页 | 论坛 | 博客
  • 博客访问: 732484
  • 博文数量: 79
  • 博客积分: 2671
  • 博客等级: 少校
  • 技术积分: 1247
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-02 15:26
个人简介

宅男

文章分类

全部博文(79)

文章存档

2017年(11)

2016年(12)

2015年(6)

2012年(10)

2011年(33)

2010年(7)

分类: LINUX

2015-08-18 10:07:10

关于这些片上调试功能,我不知道为啥arm会将其命名为CoreSight。因为coresight看起来好像指其中的ETM技术,不过这只是一个名字而已。关于coresight在官网上有很多的TRM>支持->资源文档->CoreSight片上跟踪与调试。
关于coresight,大体可以包括下面的一些模块:

CTI Cross Trigger Interface

ETB (Embedded Trace buffer)/ETR (Embedded Trace Router)/ETF (Embedded Trace FIFO)

STM (System Trace Macrocell)

TMC (Trace Memory Controller)

TPIU (Trace Port Interface Unit)

ETM (Embedded Trace Macrocell)

Funnel

Replicator

 

根据在coresight架构中的作用,这些模块大体可以分为source/link/Sink三种类型。

Source就是指一些信号或者profile/debug数据的来源,比如STMETM

Sink就是指一些可以保持这些从source过来数据的模块,比如最基本的ETB,从buffer这个单词大体可以猜出一二,另外还有ETRTPIU等等。

讲完了sourcesink之后,那么link就是指用于引导从sourcesink过程中的类似于通道作用的模块。当然这些通道的作用各不一样。FUNNEL是用途将来之不同的source的数据合并,而replicator是这些合并之后的数据再一式两份,发送给不同的sinkreplicator从这个英文名称中就可以看出端倪。

下面是ARM官方文档中的一张截图,大体可以看出这些不同的模块在整个coresight架构中的作用。

关于coresightLinux kernel支持,在linux版本中没有默认的支持,QC也在从3.18开始从事一些upstream的工作。在QCopensource的代码之中,这些代码支持从3.4甚至更早就开始了。在Linux 4.0中加入了一些最基本的支持。


这些代码在4.0中是在driver/coresight目录下面,4.1.5是在drivers/hwtracing/coresight下面,这里面实现了最基本的对于funnel/replicator/etm/tpiu/tmc等等的支持。

 很可惜的是,这里面并没有对于STM的支持。 幸好高通的内核代码是opensource的,所以都可以从上下载到。

阅读(6780) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~