ARM芯片架构之CoreSight Programmers‘ Model 深入解析 - 实践
2025-10-09 13:09 tlnshuju 阅读(0) 评论(0) 收藏 举报CoreSight Programmers’ Model 深入解析
本章聚焦 CoreSight Programmers’ Model,这是 ARM调试体系的基石。它经过统一的寄存器框架,为所有调试与追踪组件提供一致的可编程接口,使硬件设计者、调试器厂商可以跨平台工作。
1. Programmers’ Model 的设计哲学
- 统一性:无论组件类型(ETM、CTI、Funnel),管理寄存器均放在最高 4KB 地址窗口,调试器可无需硬编码快速发现。
- 可扩展性:允许组件扩展到多块 4KB空间,同时保留固定的发现寄存器区域。
- 健壮性:规定 RAZ/WI、RES0/RES1 等读写规则,确保未来向后兼容。
2. 地址空间与组件窗口
- 每个 CoreSight 组件必须映射至少4KB 地址空间。
- 若功能寄存器超过 4KB,可在低地址扩展,但0xF00–0xFFF区间必须保留标准管理寄存器。
2.1 多块组件支持
- 通过 SIZE 字段声明总空间块数。
- 最高块保留完整管理寄存器,调试器凭借 ROM Table 自动定位。
3. 通用管理寄存器
下表概述了所有 CoreSight 组件必须提供的关键寄存器:
偏移地址 | 寄存器 | 主要功能与说明 |
---|---|---|
0xF00 | ITCTRL | 集成测试模式控制:进入/退出 Integration Mode,用于产测或系统级 Trace 路径验证,正常运行时应保持关闭。 |
0xFA0 | CLAIMSET | 声明调试器占用:设置相应位表示调试器正在使用该组件,用于多调试器协作避免访问冲突。 |
0xFA4 | CLAIMCLR | 释放调试器占用:清除对应位以释放资源。 |
0xFA8 | DEVAFF0 | 设备亲和性 0:标识该组件归属的 CPU 簇/NUMA 域,便于多核体系调试映射。 |
0xFAC | DEVAFF1 | 设备亲和性 1:与 DEVAFF0 配合,用于多簇/多核体系的组件归属识别。 |
0xFB0 | LAR | Lock 访问寄存器:写入特定解锁键值(如 0xC5ACCE55)以允许修改受保护寄存器。 |
0xFB4 | LSR | Lock 状态寄存器:只读,报告锁定状态及是否可写,用于安全访问控制。 |
0xFB8 | AUTHSTATUS | 安全认证状态:指示 Secure/Non-Secure 访问结果,结合 TrustZone 限制调试权限。 |
0xFBC | DEVARCH | 架构与厂商识别:提供架构版本、厂商 ID、设计版本号,驱动可据此选择兼容寄存器布局。 |
0xFC0~0xFC8 | DEVID* | 组件特性描述:说明该模块支持的 Trace 通道数、触发器数量等实现细节,不同 CoreSight 模块定义不同。 |
0xFCC | DEVTYPE | 设备类型:提供高层次的组件类别标识,与 DEVARCH 搭配快捷确定组件角色(Trace Source/Sink/Link)。 |
0xFD0~0xFEC | PIDR0–7 | 外设 ID:存储厂商、设计版本、修订号等信息,用于调试探测和芯片一致性验证。 |
0xFF0~0xFFC | CIDR0–3 | 组件 ID:识别组件是否符合 ARM CoreSight 规范,驱动据此判断寄存器块有效性。 |
在 CoreSight中,所有组件必须提供一组管理寄存器,位于其4KB地址窗口的最高0xF00–0xFFF 区间。下面详细解析关键寄存器及其设计要点。
3.1 集成测试与声明寄存器
- ITCTRL (0xF00):Integration Mode
Control,用于调试集成测试,支持在无完整框架时单独验证模块。 - CLAIMSET / CLAIMCLR (0xFA0 /
0xFA4):声明当前调试器已获取控制权,用于多调试器环境下的仲裁。
3.2 锁定机制
- LAR (0xFB0):Lock Access
Register,写入特定解锁键值(通常是0xC5ACCE55)后才能修改组件配置。 - LSR (0xFB4):Lock Status
Register,指示当前锁状态以及是否协助锁定作用。
> 设计建议:外部调试访问通常不受锁保护,但内部软件需在访问前解锁。
3.3 认证与安全
- AUTHSTATUS
(0xFB8):表现当前安全/非安全、侵入式/非侵入式调试的允许状态。- 位[7:6]:Secure Non-Invasive Debug (SNID)
- 位[5:4]:Secure Invasive Debug (SID)
- 位[3:2]:Non-secure Non-Invasive Debug (NSNID)
- 位[1:0]:Non-secure Invasive Debug (NSID)
3.4 设备架构与类型
- DEVARCH (0xFBC):提供架构 ID 与设计者 JEDEC 代码,如 ARM 为 0x23B。字段包括:
- ARCHITECT[31:21]:设计者 JEP106 编码
- PRESENT[20]:指示是否存在该寄存器
- REVISION[19:16]:架构版本
- ARCHID[15:0]:具体架构标识,如 ETMv4=0x4A13
- DEVTYPE (0xFCC):区分模块效果类型。
- MAJOR[3:0]:主类型,如 Trace Sink(0x1)、Trace Link(0x2)、Trace Source(0x3)、Debug Control(0x4)。
- SUB[7:4]:子类型,如 TPIU=0x1、ETB=0x2。
3.5 设备配置与能力
- DEVID (0xFC8)、DEVID1 (0xFC4)、DEVID2 (0xFC0):厂商自定义寄存器,记录该组件的实现特性,例如缓冲深度、链路宽度等。
> 若组件可配置,这些寄存器应实时反映当前安装。
3.6 设备亲和性
- DEVAFF0 (0xFA8) 与 DEVAFF1 (0xFAC):用于描述与其它组件的唯一绑定关系,例如 ETM与处理器核心的对应。调试器行通过比较这些寄存器自动识别配对关系。
3.7 外设与组件识别
- PIDR0–PIDR7 (0xFE0–0xFDC):Peripheral ID Registers,提供 JEDEC厂商号、部件号、版本信息。
- CIDR0–CIDR3 (0xFF0–0xFFC):Component ID Registers,涵盖类别(CLASS) 和固定前导码,用于确认该模块属于 CoreSight架构并判断其类(如 0x9 代表 CoreSight 组件)。
4. 访问规则与安全机制
- RAZ/WI:未搭建位读零写忽略。
- RES0/RES1:保留位读出固定值,写入无效。
- 安全调试需配合 SoC 级 TrustZone 信号与 DAP 配置。
5. 组件类别与调试流程
- Class 0x1:ROM Table
- Class 0x9:CoreSight Component
- Class 0xF:PrimeCell/Legacy 组件
调试器借助 ROM Table 递归遍历组件树,利用 PIDR/CIDR自动发现所有可调试单元。
6. 硬件设计要点
- 电源域:管理寄存器应保持独立电源,确保在核心下电时仍可访问。
- 时钟域:为降低功耗,可单独为调试模块调整时钟门控。
- 版图布局:保证 ATB 链路的时序和信号完整性,避免高速 trace 丢包。
7. 与调试器的交互示例
- 调试器读取 ROM Table 获取组件基址。
- 读取 CIDR 确认组件类别。
- 读取 DEVARCH/DEVTYPE 确认具体能力。
- 根据 DEVAFF0/1 建立 CPU–ETM 配对。
- 借助 LAR 解锁并配置 Trace。
结语
Programmers’ Model以标准化寄存器框架为核心,使得跨厂商、跨平台的调试器得以在无需定制的情况下高效发现和运行
CoreSight 组件。理解这些寄存器及其访问规则,是硬件工程师构建可调试 SoC的基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932576.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
个人微信机器人开发指南!API接口轻松上手
个人微信机器人开发指南!API接口轻松上手,微信协议开发个微API
常见开发功能:
好友管理:
维护好友列表:包括添加、删除、修改好友信息。
分组管理:创建、编辑、删除标签,以便更好地组织好友。
消息管理:
信息发…
网站开发需要哪些工程师荆门网站建设514885
From: http://blog.csdn.net/handsomewang527/article/details/1676259 随着我们开发的应用的日益复杂,像以往那样将所有功能坐在一个exe文件中情况越来越少,更多时候是整个应用由若干模块、甚至若干单独的exe文件组成,这就涉及到了模块或进…
国外域名抢注网站云南云南住房和城乡建设厅网站
1.概要
std::function 是 C11 引入的一个通用、多态的函数封装器。它可以存储、复制和调用任何 Callable 目标 —— 函数、Lambda 表达式、bind 表达式或其他函数对象。这使得 std::function 成为一个非常强大的工具,可以用来表示和操作一般的可调用对象。
2.代码…
AI大模型项目三连炸:多模态监控平台+RAG推荐系统+智能体智驾系统
/s/1tEUpUpSwfsGiNGtubuNRUA 提取码:88lc
我们正站在一个历史性的拐点。如果说过去的AI发展是涓涓细流,那么2024年,我们见证的是一场真正的“大爆炸”。短短数月间,三大AI大模型项目以近乎爆破的方式横空出世——多…
做网站想要个计算器功能网站建设 广州网站建设专业公司
背景:
前几天老师交给我一个任务,给我一个基因列表,让我查找它们所编码的蛋白质的蛋白质序列。我上了一下uniprot数据库,发现这个任务可以分成两步:
找到这个基因在Uniprot数据库中所对应的蛋白质编码根据蛋白质编码…
PWN手的成长之路-13-jarvisoj_level0
远程连接环境,查看交互。输出了一句 Hello,World,之后就无任何反应了。file 查看文件。64位 ELF 可执行文件。checksec 查看文件安全属性。只开启了 NX 保护。IDA 打开文件。查看 main 函数发现最后 return 的是 vul…
淘宝做海淘产品 网站折扣变化快贵州凤冈新闻今天
每个DMA通道硬件触发源是不一样的,要使用某个外设的硬件触发源,就必须使用它连接的那个通道 12个独立可配置的通道:DMA1(7个通道),DMA2(5个通道) 每个通道都支持软件触发和特定的硬件触发 C8T6 DMA资源:DMA1 ÿ…
计算机毕设 java 基于 Java 的题库管理强大的系统 基于 SSM+JavaWeb 的题库全流程管理平台 Java+MySQL 的题库服务一体化系统
计算机毕设 java 基于 Java 的题库管理强大的系统 基于 SSM+JavaWeb 的题库全流程管理平台 Java+MySQL 的题库服务一体化系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…
微信最新协议API上线!个人号快速接入
微信最新协议API上线!个人号快速接入,个人微信二次开发API接口可拓展功能说明
1、个人微信多账号管理、聚合聊天、多个微信号同时登陆、多个微信号集中在一个窗口进行聊天,实现一人多号同时沟通快速提升沟通效率,提…
公司网站开发怎么做账专门做租房的网站
1、概念
大型单体应用拆分成多个独立部署运行的微服务(解决并发问题)
2、特点 3、技术栈 4、微服务带来的问题
5、微服务的注册中心
服务注册与发现:微服务实例在启动时会向注册中心注册自己的信息…
中山网站建设哪家好常见的手机网站
class Solution {
public: int climbStairs(int n) { vector<int>dp(n1,0); dp[0]1; for(int j0;j<n;j){ for(int i1;i<2;i){ if(j>i) dp[j]dp[j-i]; } } return dp[n]; }
};
这个题还是说想清楚 这个因为有1和2 阶的情况 所以i就是从1开始遍历 然后小于等于…
Python科学计算工具:Numpy与Pandas入门 - 指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
天津网站seo策划建网站哪个好 优帮云
特殊的质数肋骨 时间限制: 0 Sec 内存限制: 128 MB题目描述 农民约翰的母牛总是生产出最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质…
响应式网站建设联雅久久项目咨询有限公司
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它可以让 JavaScript 代码在服务器端运行。在 Node.js 中,fs 模块是用来处理文件系统操作的模块。通过 fs 模块,我们可以进行文件的读取、写入、删除等操作。本教程将介绍如何在 No…
Firefox火狐浏览器插件下载、安装路径、备份插件、手动安装插件
前言全局说明一、说明
1.1 环境:
Windows 7 旗舰版
Firefox 115.12.0esr (64 位)二、下载插件临时路径
系统缓存目录下.xpi文件就是
C:\Users\{你的用户名}\AppData\Local\Temp或
C:\Users\%username%\AppData\Local\T…
网站建设标准昆山室内设计学校
AUTOSAR(Automotive Open System Architecture)是一种开放的汽车电子系统架构标准,旨在提供一种统一的软件架构,以实现汽车电子系统的模块化和可重用性。
AUTOSAR标准中的两个重要模块是RTE(Runtime Environment&…
百度推广做网站吗网上医疗和医院网站建设制作
ftp服务器在虚拟机中配置文件 内容精选换一换由于主机中 /etc/ssh/sshd_config 配置文件中对服务器与客户端交互的活动心跳时间做出了限制,所以在一个ansible任务中如果在“规定时间”中主机没有任何响应则ssh服务断开(注:上述“规定时间”是指在/etc/ss…
芦苞建网站公司scrm企业微信管理系统
前言原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理…
2025.10.9午后有感
对自己、对世界上永远有的年轻人,想这样说:“世界没有你曾梦想中的那般好,但也远远不及你厌恶的那般差,在纷杂的琐碎间,寻找到足以令你坚定下去的对世界有益的事业,足以抵挡一切荒芜和恐怖”。
Firefox火狐浏览器插件下载、安装路径
前言全局说明一、说明
1.1 环境:
Windows 7 旗舰版
Firefox 115.12.0esr (64 位)二、下载插件临时路径
系统缓存目录下.xpi文件就是
C:\Users\{你的用户名}\AppData\Local\Temp或
C:\Users\%username%\AppData\Local\T…