【ARM Coresight 及 DS-5 介绍 2 - ARM Coresight 介绍】

news2024/12/25 12:53:59

文章目录

    • 1.1 ARM Coresight 介绍
      • 1.1.1 ARM Coresight 发展历史
    • 1.2 ARM Coresight 框架介绍
      • 1.1.1 Trace 通路
      • 1.1.3 Debug 通路
      • 1.1.4 Trigger 通路

1.1 ARM Coresight 介绍

ARM Coresight是ARM公司提供的一种调试和跟踪技术,用于ARM处理器的调试和性能分析。它通过在处理器内部集成一组硬件组件,提供了对处理器内部状态和执行信息的可观察性。

Coresight技术包括多个组件,如调试接口、调试逻辑和跟踪组件等。调试接口提供了与处理器进行通信的接口,用于调试器与处理器之间的数据交换。调试逻辑是一组硬件逻辑,用于控制和管理调试操作。跟踪组件用于收集处理器的执行信息,包括指令执行、数据访问和事件触发等。

ARM Coresight技术可以帮助开发人员进行软件调试和性能分析。通过使用Coresight技术,开发人员可以实时监测处理器的内部状态和执行信息,以便快速定位和解决软件问题。此外,Coresight技术还可以提供性能分析功能,帮助开发人员优化软件性能并提高系统效率。

1.1.1 ARM Coresight 发展历史

ARM Coresight的发展始于ARMv6架构时期,当时的Coresight技术主要用于处理器的调试和跟踪。随着ARM架构的不断演进,Coresight技术也得到了进一步的发展和改进。

在ARMv7架构时期,Coresight技术引入了更多的功能和组件,如Coresight Debug Access Port (DAP)、Coresight Trace Port (ETM)和Coresight Trace Funnel (ETF)等。这些组件提供了更强大的调试和跟踪能力,使开发人员能够更好地监测和分析处理器的内部执行信息。

随着ARMv8架构的引入,Coresight技术也得到了进一步的创新和改进。ARMv8架构引入了新的调试和跟踪扩展,如Coresight Trace Memory Controller (TMC)和Coresight Embedded Trace Router (ETR)等。这些扩展提供了更高级的跟踪和调试功能,使开发人员能够更好地理解和优化软件的执行性能。

1.2 ARM Coresight 框架介绍

Coresight Framework
下图是 DGI0012D_coresight_dk_sdg.pdf 中的一个典型的 Coresight 环境,其包含了两个 ARM Core,和一个 DSP(Digital Signal Processing,简称DSP),和众多的 Coresight 组件。

用这些 Coresight 组件实现对 ARM Core 及 DSP 的 Debug 和 Trace功能(包含 Instruction Trace 和 Data Trace)。
在这里插入图片描述

Coresight 图 1-1

上图的环境中总共包括 3 个通路

  • Trace 通路: 将 Core 和 DSP 内部信息输出到外部;
  • Debug 通路:对 Core 和 DSP 实现 debug;
  • Trigger 通路: 用于 Core 和 Core 之间,Core 和 DSP 之间,传输 trigger 信号。

1.1.1 Trace 通路

Trace 通路 实现对 Master 组件的数据追踪功能,使用 ETM(嵌入式跟踪宏单元) 来追踪。
ETM 负责追踪 处理器DSP 的信息,将信息打包,通过 ATB 总线发送到 trace bus上。trace bus上有 Trace Funnel(聚合器),Funnel 接收多个 ATB 总线数据,然后合并成一个 ATB 总线数据,发送给 Replicator(分发器)。
Replicator 接收到 ATB 数据,根据配置,将 ATB 数据发送给 ETB(片上缓冲区) 和 TPIU。

在这里插入图片描述

Coresight 图 1-2

1.1.3 Debug 通路

Debug 通路 用于外部的 debugger,对 ARM core 和 DSP 进行调试功能。
图 1-1 中只考虑了 JTAG 的 Port。其实还有 SWO 的 Port。

DAP 接收外部端口的 JTAG 数据,然后转化成对 DAP 内部的 AP 的访问,然后 AP 再转化为 memory-mapped 的总线访问,去访问 SoC 内部的资源。

ARM Coresight SWO(Serial Wire Output)是一种用于调试和跟踪的串行通信协议。它通过串行线路将调试信息从目标设备传输到调试器或其他外部设备。SWO协议可以在ARM处理器系统中使用,并且可以与其他Coresight组件(如DWT和ITM)一起工作。

图 1-1 中,DAP 输出两个 Memory-Mapped 总线:

  • 一个是 Debug APB 总线,连接到 Debug APB 互联上,用于访问 Debug 组件的寄存器;
  • 一个是 System Bus,连接到 Bus matrix,用于访问 SoC 的内部的资源。

Memory-Mapped 总线是一种常见的总线协议,用于连接 ARM 处理器系统中的各种外设和存储器。它基于内存映射的概念,将外设和存储器映射到处理器的地址空间中。

Debug APB 互联,连接了有CTI,ETM,HTM,ITM,ETB,TPIU 等 Coresight 组件,因此外部的 Debugger 可以通过JTAG Port,对这些 Coresight 组件进行访问。

Bus Matrix 一般是连接 SoC 的一些外设,如 memory,串口等,因此外部的 Debugger(J-link/DS-5) 可以通过 JTAG port 对这些外设设备进行访问。

1.1.4 Trigger 通路

Trigger 通路 用于给指定的组件发送 trigger 信号,或者接收指定的组件的 trigger 信号。这个功能由 CTICTM 来实现。每个 core 和 DSP 都有一个 CTI 组件相连,CTI 可以给处理器(DSP)发送 trigger 信号,也可以接收处理器(DSP)的 trigger 信号。
所有的 CTICTM 相连,因此可以实现多个 CTI 之间的 trigger 信号的相互发送与接收。

上一篇:ARM Coresight 及 DS-5 介绍 1 - ARM DS-5介绍
下一篇:ARM Coresight 及 DS-5 介绍 2.1 - ARM Coresight 组件介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

根据ABAP字符寻找程序

知识来之不易,还请多点赞! SE38执行程序RPR_ABAP_SOURCE_SCAN

实现流程化办公,该说不说还得借力低代码开发框架

在科技的推动下,流程化办公已经成为潮流。如何实现流程化办公,让越来越多的企业打通各部门之间的协作,实现高效率发展?借力低代码开发框架,让那遥不可及的梦想变为现实,跟传统操作方式比起来,低…

Pandas库如何在导出表格的时候去掉索引列(隐藏索引列)

import pandasdata {sku1:[1,2,3],sales:[11,22,33], } doc pandas.DataFrame(data)file_path rC:\Users\Zhao\Desktop\test1.xlsx doc.to_excel(file_path,indexFalse) # indexFalse 可以隐藏 索引列

从php5.6到golang1.19-文库App性能跃迁之路

作者 | 百度文库App 导读 本文深入浅出地分享了百度文库App服务端技术栈从PHP迁移至Go的实战经验,包含了技术选型、基础建设、流量迁移的具体方案,以及核心项目案例的重构实践。 全文6209字,预计阅读时间16分钟。 01 动机 长期以来&#xff…

异地使用PLSQL远程连接访问Oracle数据库【内网穿透】

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 转载自cpolar极点云文章:公网远程连接…

【036】读懂C++的强制类型转换static_cast、const_cast、dynamic_cast以及reinterpret_cast

C的强制类型转换 引言一、类型转换简介二、上行、下行转换的概述三、static_cast 静态类型转换四、dynamic_cast 静态类型转换(推荐使用)五、const_cast 常量转换六、reinterpret_cast 重新解释转换(最不安全)总结 引言 &#x1f…

微信支付(一):小程序支付(go+gin+内网穿透)

一、前置条件 (1)go语言,1.18 (2)Gin、第三方依赖包:gopay【github.com/go-pay/gopay/alipay】https://github.com/go-pay/gopay/blob/main/doc/wechat_v3.md (3)微信支付相关信息…

Ubuntu安装:显卡驱动、CUDA、Anaconda

Ubuntu安装:显卡驱动、CUDA、Anaconda 摘要1.安装NVIDIA显卡驱动2.安装CUDA3.安装Anaconda Windows环境安装CUDA和Pytorch见:Pytorch入门:3.安装 环境:x86_64 Linux ubuntu18 4.150.0-20-generic 摘要 本篇博客对Ubuntu系统安装…

#消防知识#自动灭火系统是什么?

自动灭火系统是指能够在发生火灾时自动检测、控制和扑灭火灾的系统,包括自动喷水灭火系统、气体灭火系统、干粉灭火系统、气溶胶灭火系统等。不同的自动灭火系统有不同的组成部件、工作原理和适用范围,以下是一些简要的介绍:• 自动喷水灭火系…

汽车远程升级(OTA)定义与技术体系

1.汽车OTA定义 1.1. OTA概述 OTA(Over-the-air technology)是一种通过无线方式而不是使用电缆或其他本地连接进行数据传输的远程升级。能够实现对现有性能/功能的优化、新功能推送等。OTA技术最早应用于PC,而后在手机上普及,终结…

Go语言程序设计(二)常量、变量、布尔类型与运算符

一、常量、变量与命名规则 常量使用关键字const声明;变量可以使用关键字var声明,也可以使用快捷变量声明语法。Go语言可以自动推断出所声明变量的类型,但是如果需要显式指定其类型也是合法的,比如声明一种与Go语言的常规推断不同的…

途乐证券|沪指缩量跌0.69%,汽车等板块走弱,稀土概念逆市活跃

6日早盘,三大股指股指盘中震动回落,科创50指数逆市上扬;两市半日成交超5000亿元,北向资金小幅净流出。 到午间收盘,沪指跌0.53%报3205.97点,深成指跌0.39%,创业板指跌0.61%,科创50指…

新版 Alist + RaiDrive 挂载阿里云盘 Open 到本地,实现网盘本地化

新版 Alist RaiDrive 挂载阿里云盘 Open 到本地,实现网盘本地化 1. 下载 Alist 和 RaiDrive2. 配置 Alist3. 填写挂载路径和刷新令牌4. 获取刷新令牌5. 使用 RaiDrive 挂载 1. 下载 Alist 和 RaiDrive 下载地址:Alist RaiDrive 安装 提取码: qu38 Al…

XXX SAP系统中支持XX动力替代件功能(投稿数字化月报三)

XXX集团、XX动力、XXX汽车IT组成替代件开发小组,快速高效完成XX动力替代件业务需求。提供从XX动力的PLM系统中开发新增含有替代件功能的BOM物料清单、在XXX汽车SAP系统中启用替代件功能、再到现场替换件业务执行的全套解决方案。 在BOM上体现出物料的替换关系&#…

汽车电子—制作DBC文件

文章目录 一、前期准备二、新建DBC文件三、添加报文(Msg)四、添加信号4.1 大小端模式4.2 创建数值表4.3 添加信号 五、关联信号和报文六、设置报文发送类型和周期七、编辑通信矩阵 一、前期准备 首先需要安装制作DBC文件的软件,这里使用的是…

计算机网络概述(二)

计算机网络的定义 计算机网络并没有一个统一的定义,不同阶段是有不同的定义。 最简单的定义:计算机网络是一些互联的,自治的计算机集合。互联:指计算机之间可以通过有线或无线的方式进行数据通信;自治指的是独…

MySQL_01删除主键索引

文章目录 添加主键索引删除主键索引 添加主键索引 alter table 表名 add primary key(字段名)删除主键索引 -- 如果这个主键是自增的,先取消自增长 alter table 表名 modify 字段 int; alter table 表名 drop primary key;

消息队列 原理剖析

什么是消息队列? ​​消息队列是一种用来存储消息的队列。 消息队列能用来做什么? 1、消息或任务的延迟处理。 2、在复杂的业务场景下给系统减压。 3、提示用户体验感,增强用户体验。 4、敏感操作高安全环境处理。 场景举例1&#xff1a…

途乐证券|股票低开好还是高开好?股票低开高走再回落什么意思?

对于一向不涨的股票,出资者常常感到困惑和不安。那么一向不涨的股票要留吗?什么股票更简单上涨?为我们预备了相关内容,以供参阅。 一向不涨的股票要留吗? 一向不涨的股票要不要留没有一个绝对的答案,出资者…

Vue2.0-3.0 入门到实战 - 2 初始及插件安装

1 Vue 指令 v- 前缀的 特殊标签属性 1 v-html"表达式" 可以解析 文本html 类似 innerHtml 2 v-show 与 v-if v-show"表达式" true 表示 显示 false 标识隐藏 v-if"表达式" true 表示 显示 false 标识隐藏 区别 当v-show 的值…