• ARM Coresight -- 与内核并列的调试系统架构【转】


    转自:https://blog.csdn.net/upc886/article/details/100034541

    1、CoreSight 

    CoreSight是一种基础架构,它可对完整的芯片上系统 (SoC) 设计的性能进行调试、监视和优化,CoreSight™ 跟踪宏单元在 SoC 中提供全面的

    非干预性可见性。通过遵循 CoreSight 架构规范,可以方便地将合作伙伴特定的跟踪宏单元集成到 CoreSight 系统中。

    ARM公司的CoreSight AHB追踪分析宏单元提供给了开发人员完整的AMBA AHB上行为的可见性,为调试和优化系统带来了很大的便利。

    CoreSight(内核景象)调试架构是ARM在推出Cortex之后推出来的,旨在丰富ARM产品的调试功能,功能是相当强大

    CoreSight技术支持JTAG协议和SW协议,其实更具体的说实际上是CoreSight把JTAG和SW协议转换成通用的内部DAP协议,

    这里只是利用了JTAG和SW接口。

    ARM开发工具和 Keil开发工具以及全球超过 25 个其他调试和性能分析工具支持 CoreSight 产品组合(包含 ARM 嵌入式跟踪宏单元(ETM)),

    从而向产品开发团队保证其产品将得到广泛的支持。

    2、ETM

    ---- Embedded Trace Macrocell 嵌入式跟踪宏单元

    ETM 宏单元为 ARM 微处理器提供实时指令跟踪和数据跟踪。跟踪软件工具使用 ETM 生成的信息重建全部或部分程序的执行情况。

    3、PTM

    ---- Program Trace Macrocell 程序跟踪宏单元

    PTM 是一个模块,它根据程序流程跟踪 (PFT) 体系结构执行实时指令流跟踪。跟踪工具使用 PTM 生成的信息重建全部或部分程序的执行情况。

    4、术语

    ---- CTI:Cross Trigger Interface 交叉触发接口

    ---- ETB:Embedded Trace Buffer 嵌入式跟踪缓冲区

    CoreSight ETB 是一个跟踪接收器,它可使用可配置大小的 RAM 为跟踪数据提供芯片上存储。

    ---- ETR:Embedded Trace Router

    ---- ETF:Embedded Trace FIFO

    ---- STM:System Trace Macrocell 系统跟踪宏单元

    STM为所有软件开发人员提供了低成本的软件和硬件执行实时可见性,尤其是应用程序和内核开发人员,从而为整个供应链中支持 ARM 处理器

    的设备提供了功能丰富且优化的低能耗软件。

    ---- TMC:Trace Memory Controller

    ---- TPIU:Trace Port Interface Unit

    ---- Funnel

    ---- Replicator

    ---- DAP:Debug Access Port 调试访问接口

    Cortex-M3 的调试系统是基于ARM最新的CoreSight架构。不同于以往的ARM处理器,内核本身不再含有JTAG接口。取而代之的,是CPU提供

    的DAP总线接口。通过这个总线接口,可以访问芯片的寄存器,也可以访问系统存储器,甚至是在内核运行的时候访问。对此总线接口的使用,

    是由一个调试端口(DP)设备完成的。DPs不属于CM3内核,但它们是在芯片的内部实现的。目前可用的DPs包括SWJ-DP(既支持传统的JTAG

    调试,也支持新的串行线调试协议),另一个SW-DP则去掉了对JTAG的支持。另外,也可以使用ARM CoreSight家族的JTAG-DP模块。

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

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

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

    讲完了source和sink之后,那么link就是指用于引导从source到sink过程中的类似于通道作用的模块。当然这些通道的作用各不一样。

    FUNNEL是用途将来之不同的source的数据合并,而replicator是这些合并之后的数据再一式两份,发送给不同的sink。

    replicator从这个英文名称中就可以看出端倪。

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


     ———————————————— 
    版权声明:本文为CSDN博主「cany1000」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/dongyanxia1000/article/details/52777899

  • 相关阅读:
    Go 环境变量相关操作
    Go命令行参数解析flag包
    go sync.once用法
    使用go语言编写IOS和Android程序
    go map的使用
    go runtime.Gosched()的作用分析
    go中的读写锁RWMutex
    go互斥锁Mutex
    go import使用及. _的作用解析
    利用channel在goroutins之间控制同步和传递数据
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/13441263.html
Copyright © 2020-2023  润新知