ARM汇编指令3 - CP15协处理器介绍和操作方法

article/2025/9/26 5:18:08

一. ARM CP15协处理器寄存器简介

        CP15协处理器寄存器是ARM处理器里面的一些有特殊功能的寄存器,CP15协处理器一般包括C0 - C15寄存器,它们分别控制高速缓存cache,MMU,TLB等功能,下面分别介绍

二. CP15寄存器访问

1. CP15协议处理器指令的编码格式 

op1 :  协处理器行为操作码,对于CP15,op1必须为0b000(二进制0),否则结果未知。

rd :不能是r15/pc寄存器,否则结果未知。

crn :作为目标寄存器的协处理器寄存器,编号为C0 - C15。

crm :附加的目标寄存器或源操作数寄存器,如果不需要设置附加信息,将crm设置为C0,否则结果未知。

op2 :提供附加信息比如寄存器版本号或者访问类型。用于区分同一编号的不同物理寄存器,可以省略op2或将其设置为0,否则结果未知。

2. 汇编指令语法

mcr :将ARM处理器的寄存器中的数据写到CP15中的寄存器中。

语法:

mcr{<cond>} p15, <op1>, <rd>, <crn>, <crm>, {<op2>}

mrc :将CP15中的寄存器中的数据读到ARM处理器的寄存器中。

语法:

mcr{<cond>} p15, <op1>, <crn>, <crm>, {<op2>}

三. CP15寄存器介绍

1. C0 - ID编码和cache类型(只读)

访问主标识符寄存器:

指令格式如下:

mrc p15, 0, r0, c0, c0, 0         ; 将主标识符寄存器C0的值读到r0中。

不同的处理器的主标识符寄存器的编码格式说明如下:

ARM7之后处理器的主标识符编码格式:

[ 3 - 0 ] :生产商定义的处理器版本号

[ 15 - 4 ] :生产商定义的产品主编号

[ 19 - 16 ] : 0x1 - ARMv4,0x2 - ARMv4T,0x3 - ARMv5, 0x4 - ARMv5T,0x5 - ARMv5TE

[ 23 - 20 ] : 生产产商定义的产品子编号

[ 31 - 24 ] :生产产商编号。0x41 - ARM公司,0x44 - Digital Equipment公司, 0x69 - intel公司

ARM7和之前的省略。

cache类型标识符寄存器:

指令格式如下:

mrc p15, 0, r0, c0, c0, 1      ; 将cache类型标识符寄存器C0的值读到r0中。

cache类型标识符寄存器的编码格式:

[ 28 - 25 ] :字段说明如下表所示:

[ 24 ] :定义系统中的数据cache和指令cache是统一或者分开的。0 - 系统的指令cache和数据cache是统一的,1 - 系统的指令cache和数据cache是分开的。

[ 23 - 12 ] :定义数据cache的相关属性,如果位24为0,本字段定义整个cache的属性

[ 11 - 0 ] : 定义指令cache的相关属性,如果位24为0,本字段定义整个cache属性

数据cache和指令cache的编码格式如下:

2. C1 - 控制位

指令格式:

mrc p15, 0, r0, c1, c0{, 0}    ; 将CP15的寄存器C1的值读到r0中

mcr p15, 0, r0, c1, c0{, 0}    ; 将r0的值写到CP15的寄存器C1中

CP15寄存器C1的编码格式及其含义:

M :0 - 禁止MMU或者PU,1 - 使能MMU或者PU

A :0 - 禁止地址对齐检查,1 - 使能地址对齐检查

C :0 - 禁止数据/指令cache,1 - 使能数据/指令cache

W :0 - 禁止写缓冲,1 - 使能写缓冲

P :0 - 异常中断处理程序进去32位地址模式,1 - 异常中断进入26位地址模式

D :0 - 禁止26位地址异常检查,1 - 使能26位地址异常检查

L :0 - 选择早期终止模型,1 - 选择后期终止模型

B :0 - 小端模式,1 - 大端模式

S : 在基于MMU的存储系统中,本位用于系统保护

R :在基于MMU的存储系统中,本位用作ROM保护

F :0 - 由生产产商确定

Z : 0 - 禁止跳转预测功能,1 - 使能跳转预测功能

I :0 - 禁止指令cache,1 - 使能指令cache

V :0 - 选择低端异常中断向量0x0 - 0x1c,1 - 选择高端异常中断向量0xffff0000 - 0xffff001c

RR :0 - 选择常规的cache淘汰算法,如随机淘汰,1 - 预测性淘汰算法,如round-robin淘汰算法

L4 :0 - 保持ARMv5以上版本的正常功能,1 - 将ARMv5以上版本与以前版本处理器兼容

3. C2 - 地址转换表基地址

        C2保存的是页表的基地址,即一级映射描述符表的基地址

4. C3 - 域访问控制位

        C3定义ARM处理器的16个域的访问权限

5. C5 - 内存失效状态

6. C6 - 内存失效地址

7. C7 - 高速缓存与写缓存控制

8. C8 - TLB控制

9. C9 - 高速缓存锁定

10. C10 - TLB锁定

13. C13 - 进程标识符

14. C15 - 因不同设计而异

四. 总结

        学习CP15协处理器寄存器对于深入学习ARM的一些机制非常重要,为分析Linux内核启动时运行的汇编代码非常有帮助,后续的CP15寄存器用到时再来补充。


http://chatgpt.dhexx.cn/article/4utrdRgB.shtml

相关文章

【文献翻译】用于5G蜂窝的毫米波移动通信:我看行!

【标题】&#xff1a;Millimeter Wave Mobile Communications for 5G Cellular: It Will Work! 【作者】&#xff1a;T. S. Rappaport, S. Sun, R. Mayzus, H. Zhao, Y. Azar, K. Wang, G. N. Wong, J. K. Schulz, M. Samimi, and F. Gutierrez 【来源】&#xff1a;IEEE Acces…

STM32之单DAC数模转换输出(2021-07-30)

STM32之单DAC数模转换输出 1.DAC简介及框图&#xff1a; DAC功能只有STM32大容量的芯片才具有&#xff1b;中低容量的芯片没有&#xff1b; DAC有两个 8位*&#xff08;右对齐&#xff09;或者是12位&#xff08;左或右对齐&#xff09;*的转换器&#xff0c;每个转换器只有一…

pycinrad学习入门笔记,数据为雷达新旧格式基数据、pup产品数据

安装步骤 1.更改pip源为清华径向 2.pip install cinrad 3.运行上传的代码&#xff0c;在我的资料上传里 4、可以解码的基数据有&#xff1a;old 、new&#xff0c;格式可以是bz2和bin格式&#xff0c;分别使用不同的函数 file1 "Z_RADR_I_Z9552_20200711161600_O_DO…

Linux 初级 文件与目录管理(3)

文件和目录管理 在开始目录的切换之前&#xff0c;先了解一下路径&#xff0c;什么是相对路径&#xff0c;什么是绝对路径。 绝对目录 &#xff1a; 路径的写法&#xff0c;一定是由根目录写起/ 写起。例如如&#xff1a; /usr/share/dor这个目录 相对路径&#xff1a; 路径的…

bwapp通关教程

** HTML Injection - Reflected (GET) ** low: 低级漏洞中&#xff0c;输入数据没有做校验 First name: <script>alert( xss )</script> Last name: <script>alert( xss )</script> 出现xss即为成功。 medium 和low一样&#xff0c;但发现被全…

新一代天气雷达文件三维可视化

链接&#xff1a;从最新文章获取百度盘地址 支持新一代天气雷达SA SB CA&#xff0c;支持FMT&#xff0c;支持SWAN格式直接将文件拖进程序即可 支持列表样例Z_RADR_I_Z***_20200803100000_O_DOR_SA_CAP.bin.bz2Z_RADR_I_Z***_20210514000000_O_DOR_SA_CAP_FMT.bin.bz2Z_OTHE_…

激光雷达动态障碍物滤除-调研与展望

0. 简介 激光雷达作为自动驾驶中最常用的传感器之一&#xff0c;由于其深度感知特性优良&#xff0c;这也让以激光SLAM为主的SLAM方法被广泛应用。但是我们发现在人员密集&#xff0c;车辆密集的场景经常会造成点云定位效果不佳&#xff0c;而这些情况传统滤波方法是没有办法解…

DAC的简单应用

1.简介 DAC指数字/模拟转换。STM32F103RCT6具有2个12位数字输入&#xff0c;模拟输出的DAC&#xff1b;支持数字输入配置成8位右对齐、12位左对齐或12位右对齐格式&#xff1b;在双DAC通道模式下支持单通道独立转换或双通道同步转换。 2.框图 根据框图&#xff0c;将数据写入…

STM32学习笔记--DAC

目录&#xff1a; 一、DAC原理1.DAC定义2.STM32DAC简介3.STM32DAC工作原理 二、STM32DAC库函数配置参考资料 一、DAC原理 1.DAC定义 DAC是Digital-to- Analog Converter的缩写&#xff0c;数字/模拟转换模块的简称&#xff0c;它的作用就是把输入的数字编码&#xff0c;转换成…

Bwapp 04 05

文章目录 Insecure DOR (Change Secret)Insecure DOR (Reset Secret)Insecure DOR (Order Tickets)安全配置 Insecure DOR (Change Secret) 抓包的话&#xff0c;就可以实行篡位修改 Insecure DOR (Reset Secret) 同上&#xff0c;换成了xml的形式 Insecure DOR (Order Ticke…

水处理相关工艺控制程序汇总(RXXW_Dor)

水处理和化工行业流程控制类程序工艺有很多相似之处,属于过程控制,并不太关心控制实时性和控制速度,这篇博客汇总项目各种工艺写法,陆续会更新。流程控制类程序很多可以利用状态机思想进行编程,有关状态机编程的详细方法可以参看下面的文章链接: PLC面向对象编程系列之有…

整理 kanban 的 DoR 和 DoD

所谓 DoR 和 DoD 就是 Definition of Ready 和 Definition of Done。 我们的敏捷团队在需求管理上主要有两个会:需求梳理会和需求计划会议。 需求梳理会的阐述的意向用户故事会放到 Backlog,后由研发 Owner 跟进,在计划会上,将符合 DoR 放入 Sprint Todo。 「Backlog」…

人生的DoR和DoD:志向、遗产

我们要为两件事做好准备&#xff1a;太阳升起和太阳落山。前者没准备好&#xff0c;则错过了大好时光。后者没准备好&#xff0c;则坠入无边黑暗。前者让你醒的来&#xff0c;后者让你睡得着。 &#xff08;一&#xff09;立志是人生的DoR 年少的刘备与同族的孩子在树下玩耍时&…

【Scrum模式语言9】准备就绪的定义(Definition of Ready - DoR )

译者序&#xff1a;在很多敏捷项目中&#xff0c;秩序诞生的标志之一是有了成文的DoR。但是项目组和需求方的折中往往也无可奈何地始于将没有就绪的需求纳入到Sprint待办事项列表&#xff0c;并为Sprint实施阶段带来一系列的不可控因素。为什么市场和产品人员时常要求技术人员在…

敏捷开发中的 DoD 和 DoR 是什么?

在敏捷开发中&#xff0c;让所有成员保持目标统一、步调和节奏一致非常重要&#xff0c;但是在团队协作中&#xff0c;认知偏差却在所难免。需求在不同环节中流转&#xff0c;是否存在某种途径能保证所有成员的理解一致&#xff0c;将偏差最小化&#xff1f; 今天跟大家介绍敏…

传播动力学--SIR模型及其应用

王道谊 2020年3月 1. 传播动力学 “道生一&#xff0c;一生二&#xff0c;二生三&#xff0c;三生万物。” ---《道德经》 所谓“不积跬步无以至千里”&#xff0c;任何变化都是由点滴变化决定并发展起来的。知道所有的微观点滴变化&#xff0c;就能够掌握宏观变化。点滴…

SIR传播模型的科普和预测

>关注公众号&#xff1a;大数据技术派&#xff0c;回复资料&#xff0c;领取1024G资料。 注&#xff1a;本文仅是个人对于几个疾病模型做的一些概念性描述&#xff08;科普&#xff09;&#xff0c;并进行了简单的编程实现。切勿当做现实的行动指导。因为文章内容原因&#…

6.复杂网络实验六:SIR病毒传播模型(matlab)

一、SIR模型简介 在典型的传染病模型中&#xff0c;种群&#xff08;Population&#xff09;内的N个个体的状态可分为如下几类&#xff1a; (1)、易染状态S(Susceptible),即健康状态&#xff0c;可被感染的个体。 (2)、感染状态I(Infected),处于感染状态的个体还能够感染将康…

传染病SIR传播模型(搬运,含带MATLAB代码)

学习笔记之SIR传染病模型TOC 本文主要是对此篇文章代码部分的详解 function ysir(~,x)a0.8; %感染率0.8b0.2; %治愈率0.2y[-a*x(1)*x(2),a*x(1)*x(2)-b*x(2),b*x(2)]; end %t 为持续时间&#xff0c;%x为三维矩阵&#xff0c;其中x(1)为易感染者&#xff0c;x(2)为传染者&…

传染病模型(4)——SIRS模型和SIER模型及matlab具体程序

前言 常见的传染病模型按照具体的传染病的特点可分为 SI、SIS、SIR、SIRS、SEIR 模型。其中“S”“E”“I”“R”的现实含义如下&#xff1a; S (Susceptible)&#xff0c;易感者&#xff0c;指缺乏免疫能力健康人&#xff0c;与感染者接触后容易受到感染&#xff1b; E (Ex…