【ARM Coresight 系列文章 2 - ARM Coresight 介绍】

news2025/1/4 15:07:13

文章目录

    • 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/725710.html

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

相关文章

Java中规模软件开发实训——简单的文本编辑器(代码注释详解)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(html css js) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:在现代社会中…

k8s如何伸缩应用程序和执行滚动更新

一、伸缩应用程序 我们创建了一个 Deployment (opens new window),然后通过 服务 (opens new window)提供访问 Pod 的方式。我们发布的 Deployment 只创建了一个 Pod 来运行我们的应用程序。当流量增加时,我们需要对应用程序进行伸缩操作以满足系统性能…

第五章:L2JMobius学习 – 快速部署L2JMobius汉化版

L2JMobius是一套开源的 LineageII 的服务器端代码,使用Java语言编写。在前面的章节中,我们安装了mariadb10数据库以及jdk17运行环境,这两个是必须的。紧接着,我们又安装了eclipse开发工具,然后创建了“L2J_Mobius”Jav…

按键输入实验(stm32)

目录 按键的相关代码key.ckey.h LED的相关代码BEEP的相关代码beep.cbeep.h main.c代码的相关说明相关硬件说明实验结果 说明:以下内容参考正点原子资料 按键的相关代码 key.c void KEY_Init(void) //IO初始化 { GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2Peri…

ModaHub魔搭社区:可视化的AI原生云向量数据库 Milvus 2.2.9 :JSON、PartitionKey、Dynamic Schema

目录 新特性 功能增强 其他优化 问题修复 亮点颇多、精彩程度堪比大版本的 Milvus 2.2.9 来啦! 随着 LLM 的持续火爆,众多应用开发者将目光投向了向量数据库领域,而作为开源向量数据库的领先者,Milvus 也充分吸收了大量来自社…

ROS:话题名称设置

目录 一、 前言二、rosrun设置话题重映射三、launch文件设置话题重映射四、编码设置话题名称4.1C4.1.1全局名称4.1.2相对名称4.1.3私有名称 4.2Python 实现4.2.1全局名称4.2.2相对名称4.2.3私有名称 一、 前言 在ROS中节点名称可能出现重名的情况,同理话题名称也可…

[攻防世界] [RE] [APK] app2

解题思路 导入jadx查看manifest.xml 查看主函数并未发现有价值的东西&#xff0c;于是查看manifest.xml中主函数下一个<activity> 截取FileDataActivity代码 package com.tencent.testvuln;import android.os.Bundle; import android.widget.TextView; import com.tence…

2022年真题 - 15 - 磁盘管理(vdo磁盘)

磁盘管理 - vdo磁盘 题目配置验证配置题目 StorageSrv - 磁盘管理 在 storagesrv 上新加一块 10G 磁盘;创建 vdo 磁盘,并开启 vdo 磁盘的重删和压缩;名字为 vdodisk,大小为150G,文件系统为 ext4;并设置开机自动挂载。挂载到 /vdodata。配置 新加一块 10G 磁盘; 安装…

驱动 作业 day4

编写LED灯的驱动&#xff0c;创建三个设备文件&#xff0c;每个设备文件和一个LED灯绑定&#xff0c;当操作这个设备文件时只能控制设备文件对应的这盏灯。 此时没有安装led2 和led3的驱动所以会打开设备文件失败 装完以后就可以正常控制了 以下是设备现象 head.h ubuntuu…

docker 的整体架构及各模块组件 《深入docker底层原理》

1.Docker 整体架构 Docker 是一个 C/S 模式的架构&#xff0c;后端是一个松耦合架构&#xff0c;模块各司其职。 1、用户是使用 Docker Client 与 Docker Daemon 建立通信&#xff0c;并发送请求给后者。 2、Docker Daemon 作为 Docker 架构中的主体部分&#xff0c;首先提供…

Windows如何设置自动关闭未响应的程序?Windows设置自动关闭未响应的程序方法,带图详解

Windows系统程序经常出现程序未响应现象&#xff0c;如何通过注册表使其自动关闭呢 1、首先快捷键winR唤出【运行】 输入regedit 2、确定后就打开了注册表编辑器&#xff0c;定位到【HKEY_CURREnT_UsER\Control panel\desktop】项下 3、在右侧找【AutoEndTasks】数值数据&#…

yolo.h5文件问题的解决 - 吴恩达深度学习:目标检测之YOLO算法

1.下载下载yad2k: git clone https://github.com/allanzelener/yad2k.git 这里面顺便有yad2k.py文件 2.下载yolov2.cfg https://github.com/pjreddie/darknet/tree/master/cfg 3.下载yolov2.weights http://pjreddie.com/media/files/yolo.weights 需要这三个文件 自己去githup…

易模为真人3D手办制作带来了创新

3d打印技术是一项近年来迅速发展的先进制造技术&#xff0c;逐渐在各个领域展现出无限的潜力。其中&#xff0c;3d打印真人手办成为了一个备受关注的领域。在市面上&#xff0c;我们常常可以看到一些热门动漫角色或明星的真人3d手办&#xff0c;逼真的细节和完美的再现度让人们…

iOS上架报错:无法添加以供审核

无法提交以供审核 要开始审核流程 必须提供以下项目 您必须为要添加的 app 提供版权信息。 您在提交 app 审核时遇到的问题是因为需要提供版权信息&#xff0c;而您的 app 缺少相关的版权信息。以下是解决此问题的步骤&#xff1a; 确认您是否拥有 app 的版权&#xff1a;在提…

mac苹果电脑,怎么把mkv转换mp4格式

mac苹果电脑&#xff0c;怎么把mkv转换mp4格式&#xff1f;如果你是一名mac苹果电脑的用户&#xff0c;在电脑上下载到mkv格式的视频后会发现它使用起来非常的麻烦&#xff0c;甚至不能直接打开播放。mkv其实也是一种时间比较久远的视频文件格式&#xff0c;但是不知道是什么原…

eNSP-OSPF组播拓展

OSPF组播拓展 文章目录 OSPF组播拓展一、拓扑结构二、基础配置三、测试验证 启动 OSPF 协议后 &#xff0c; OSPF 将向本地所有运行 OSPF 协议的接口以组播224.0.0.5的形式发送hello报 文 &#xff1b; hello 报文中将携带本地 RID 值 &#xff0c; 以及本地已知的邻居的RID值&…

nginx反向代理 404 问题

发现我们设置了反向代理没有起作用&#xff0c;最后发现原来是伪静态惹得祸 解决nginx添加反向代理代码不生效-与原rewrite伪静态规则冲突了 以thinkphp官方给的伪静态为例 if (!-e $request_filename){rewrite ^(.*)$ /index.php?s$1 last; break;}仔细研究发现发现问…

Android OpenGL ES 学习(十三) -离屏渲染FBO(截图)RBO, OES转 FBO

Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EB…

威胁和漏洞管理增强远程 IT 安全性

威胁和漏洞管理是保护组织设备和数据的主动方法。它可以帮助管理员识别漏洞并检查安全设置是否薄弱。通过使用此方法&#xff0c;可以在任何弱点成为安全漏洞之前对其进行修复。 对远程威胁和漏洞管理工具的需求 随着越来越多的员工远程工作&#xff0c;网络攻击的可能性也在…

基于Unity 3D实现的融合多元素风格游戏

完整资料进入【数字空间】查看——baidu搜索"writebug" 1.综合描述 1.1 产品背景 随着人们对游戏的追求&#xff0c;越来越多的优秀游戏被开发出来。目前&#xff0c;多风格元素游戏深受大众喜爱&#xff0c;例如绝地求生融合了 FPS 射击与生 存元素&#xff0c;守…