ARM Coresight 系列文章 5 - ARM Coresight APB Interconnect(APBIC)

news2025/1/13 10:31:17

文章目录

    • APBIC 介绍
      • APBIC ROM Table
      • Error response
      • 软件访问的控制

APBIC 介绍

下图是基于SOC-400的 DAP 架构图,从图中可以看到 DAP 口出来的DAP-APB 会接入 APBIC 的 Slave 口,系统总线也接入了 APBIC 的 APB Slave port(图中并没有直接标出slave port)。所以两者都可以通过APBIC来访问Debug APB, APBIC 是 arm coresight 定义的一个coresight 组件,其功能是用于APB BUS的互联。
在这里插入图片描述

图 1-1 Structure of the CoreSight SoC-400 DAP components

如下图1-2 更详细地显示了 APBIC 端口情况,图中左边一共有 4个 slave port, 右边有 64个 master port。
在这里插入图片描述

图 1-2

关于 APBIC ARM 的定义如下:
在这里插入图片描述
APBIC 至少有一个S0的端口,S0 通常会接到前一级的 DAP, 如图 1-1 所示, S1/S2/S3 可以接到系统总线上,也就是 system bus。它们优先级的排序:S0>S1>S2>S3…,通常只需两个slave 端口就可以了,S0 接 DAP, S1 接 System bus。

APBIC ROM Table

在这里插入图片描述
在这里插入图片描述
APBIC Rom Table 中的 Entry 会指向 Master 接口对应的 Component,此外,APBIC 是可以级联的,Master 可以再挂一个APBIC:
在这里插入图片描述

另外,有些 CPU 中只有一个 Debug APB接口,但是 CPU 内部也有一个 ROM Table,那么 CPU内部也会有一个APBIC,这样通过 Debug APB,再通过CPU 内部的 APBIC 就可以访问到 CPU 内部的 Component了。

APBIC 中的每个 Master 端口都有一个映射的地址,这个映射地址是相对于 ROM Table 中的 offset 地址,APBIC 中的 ROM Table 是放到最开始的地址也就是 0x0000_0000 处,这个是固定的。如下图所示:M0 对应的是 0x0000_1000 地址,M1 对应的是0x0000_2000 地址… M5 连接到 A73 Debug APB 接口上的。
在这里插入图片描述

Error response

ROM Table 中有些地址是 Reserved 的,如果 S1 访问到 ROM Table 中没有用到的地址就会产生一个error response。常遇到的有以下几种:
在这里插入图片描述

软件访问的控制

Coretex-A73 可以通过 M1/M2/M3/M0 来访问其上连接 component 。
在这里插入图片描述
如果来自 Coretex-A73的访问,会把 paddrdbg31 拉低,如果来自DAP,那么S0 的bit31默认会为高的,区分 bit31的原因,是防止软件的干扰。

通过 dbgswen 信号可以限制软件的访问,也即限制Coretex-A73 不能访问S1/S2/S3, 如图 1-1。
在这里插入图片描述

上篇文章:ARM Coresight 系列文章 4 - ARM Coresight APB-AP 介绍
下篇文章:ARM Coresight 系列文章 6 - ARM Coresight ROM Table

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

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

相关文章

FastDVDnet Towards Real-Time Deep Video Denoising Without Flow

FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation 原文: https://ieeexplore.ieee.org/document/9156652 由于视频有着较强的时间相关性,那么一个好的视频去噪算法必将要充分利用这一特点。利用时间相关性主要体现为两个方面…

Linux:企业级服务器嵌入式系统优势与应用

Linux在企业级服务器领域具有广泛应用。作为一种强大的操作系统,Linux可以用于构建企业的WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等。通过采用Linux系统,企业不仅可以降低运营成本,还能获得高稳…

Linux5.14 ELK企业级日志分析系统

文章目录 计算机系统5G云计算第四章 LINUX ELK 企业级日志分析系统一、ELK 概述1.ELK 简介1)ElasticSearch2)Kiabana3)Logstash4)可以添加的其它组件:Filebeat5)缓存/消息队列(redis、kafka、Ra…

【Shell学习】

Shell学习 Shell介绍 Shell是一种用于操作系统的命令行解释器,它提供了与操作系统内核进行交互的接口。它允许用户通过键入命令来执行各种操作,包括文件管理、进程控制、网络通信等。   下面是一些关于Shell的介绍: Shell是一种解释性语言…

使用php数组实现双色球的随机选号

一、双色球彩票介绍 双色球是中国福利彩票的一种常见玩法,也是全国彩民最爱的彩种之一。玩法规则是在33个红色球中选择6个数字,在16个蓝色球中选择1个数字,红色球号码区间为1-33,蓝色球号码区间为1-16。可以单式投注或者复式投注…

【数据结构】初识

🍁 博客主页:江池俊的博客_CSDN博客-C语言——探索高效编程的基石领域博主 🍁 专栏:https://blog.csdn.net/2201_75743654/category_12348274.html 🍁 如果觉得博主的文章还不错的话,请点赞👍收藏&#x1f…

在UI中使用SpriteMask裁减任意shader的粒子效果

前言 由于我们需要在Mask中对粒子效果进行裁减。但是我们的的特效同事不愿意每个shader都去添加Stencil。所以使用SpriteMask方式进行裁减。 使用步骤 1. 添加SpriteMask Component 更具你需要的Mask形状设置精灵图片。又因为实际是精灵,并不属于UI系统&#xff…

什么是 XSS 攻击,攻击原理是什么

什么是 XSS 攻击? XSS(Cross-Site Scripting)攻击是一种常见的 Web 安全漏洞,其攻击目标是 Web 应用程序中的用户,攻击者通过在 Web 页面中植入恶意脚本,从而实现窃取用户敏感信息、篡改用户数据等目的。 …

水母搜索(JS)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

zeppelin的hive使用

zeppelin的hive使用 配置项 default.driver org.apache.hive.jdbc.HiveDriver default.url jdbc:hive2://192.168.xxx.xxx:10000 default.user hiveHive使用:点击create new note Default Interpreter选择hive

苹果iOS App Store上架操作流程详解:从开发者账号到应用发布

很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询&#…

代码随想录算法训练营day2 | 977. 有序数组的平方,209. 长度最小的子数组

目录 977. 有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵 II 977. 有序数组的平方 977. 有序数组的平方 难度:easy 类型:双指针(相向指针) 思路: 暴力法是将每个数都平方后,再排序(快排)&#…

MySQL 多表查询练习

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );创建score表。SQL代码如下: CREATE TABLE s…

万字长文 | Hadoop 上云: 存算分离架构设计与迁移实践

一面数据原有的技术架构是在线下机房中使用 CDH 构建的大数据集群。自公司成立以来,每年都保持着高速增长,业务的增长带来了数据量的剧增。 在过去几年中,我们按照每 1 到 2 年的规划扩容硬件,但往往在半年之后就不得不再次扩容。…

KMP算法和朴素算法对比

1.KMP速求next数组 先记录做题过程 等有时间再填内容吧

6、i2c设备驱动

I2C设备驱动要使用i2c_driver和i2c_client数据结构并填充i2c_driver中的成员函数。 i2c_client一般被包 含在设备的私有信息结构体yyy_data中, 而i2c_driver则适合被定义为全局变量并初始化 static struct i2c_driver pca954x_driver { .driver {…

组件的插槽以及组件通信

组件的插槽以及组件通信 1. 插槽1.1. 单个插槽1.2. 多个插槽 2. 组件通信2.1. 属性绑定2.2. 事件绑定(重点)2.3. 获取组件实例 1. 插槽 在自定义组件的 wxml 结构中,可以提供一个 节点(插槽),用于承载组件…

2023WAIC大会后记:我们距离AGI还有多远?

只有解决了算力问题,才能离大模型的商业化之路更进一步,等等问题,都在成为当下限制我们想象力的关键因素。继2023世界人工智能大会后,大模型还有多少想象力? 作者|思杭 编辑|皮爷 出品|产业家 1亿用户&#xff0…

当用AopContext.currentProxy()方式调用@Asyn注解的方法,发现不起作用了

1、前言 遇到到平常一些spring相关调用错误浅浅记录下 2、我们常常会用到在一个类的方法内部会去调用本类的别一个方法 我们常常会用到在一个类的方法内部会去调用本类的别一个方法,示例如下: public interface ITestAsy {String funttion1();String…

pycharm新建分支并提送至GitHub

文章目录 前言pycharm创建本地分支Push至远程分支 前言 当我们写的项目代码越来越多时,一个master分支无法满足需求了,这个时候就需要创建分支来管理代码。 创建分支可以快速的回滚到某个节点的版本,也可以多个开发者同时开发一个项目&#…