当前位置:网站首页>ARM V7 协处理器
ARM V7 协处理器
2022-06-25 12:02:00 【xiaozhiwise】
/*
* 2012/3/29 10:47 qing
*/
协处理器
1.CP14调试通信通道协处理器
2.CP15系统控制协处理器
他通过协处理器指令MCR和MRC提供具体的寄存器来配置和控制caches、MMU、保护系统、配置时钟模式(在
bootloader时钟初始化用到)
|31 28|27 24| 23 21| 20 |19 16|15 12|11 8|7 5|4 | 3 0 |
---------------------------------------------------------------------------
| cond | 1110 | 0 0 0 | 0 | CRn | Rd | cp_num | opcode_2| 1 | CRm |
---------------------------------------------------------------------------
mcr {<cond>} p15, 0, <Rd>, <CRn>, <CRm>{, <opcode_2>}
<opcode_1> 永远为0b000,不为0时,操作结果不可预知.
<Rd> 作为源寄存器的 ARM 寄存器,其值将被传送到的协处理器寄存器中.不能为PC.
<CRn> 作为目标寄存器的协处理器寄存,可能为C0, C1...C15.
<CRm> 附加的目标寄存器或者源操作数寄存器,用于区分同一个编号的不同物理寄存器.
当指令中不需要提供附加信息时,将C0指定为<CRm>,否则指令操作结果不可预和.
<opcode_2> 提供附加信息,用于区别一个编号的不同物理寄存.当指令中没有指定附加信息,
省略<opcode_2>或者将其指定为0,否则指令操作结果不可预知.
cond是条件码,bit20是L位,
如果L=1就表示Load,从外面读到CPU核中,也就是MRC指令,
如果L=0就表示Store,也就是MCR指令。[11:8]这四个位是协处理器编号,CP15编号是15,因此是4个1。
CRn是CP15寄存器编号,Rd是CPU核寄存器编号,各占4位。
对于CP15协处理器,规定opcod1应该为0,opcode2和CRm是指令的选项,具体含义取决于不同的寄存器。
CP15 中的寄存器: P180 <<arm_struc_prog>>
-----------------------------------------------------------------------------
寄存器编号 | 基本作用 | 在MMU中的作用 | 在PU中的作用
-----------------------------------------------------------------------------
0 ID编码(只读) ID编码和cache类型
1 控制位(W/R) 各种控制位
2 存储保护和控制 地址转换表基地址 Cachability的控制位
3 存储保护和控制 域访问控制位 Bufferablity控制位
4 存储保护和控制 保留 保留
5 存储保护和控制 内存失效状态 访问权限控制位
6 存储保护和控制 内存失效地址 保护区域控制
7 高速缓存和写缓存 高速缓存和写缓存控制
8 存储保护和控制 TLB控制 保留
9 高速缓存和写缓存 高速缓存锁定
10 存储保护和控制 TLB锁定 保留
11 保留
12 保留
13 进程标识符
14 保留
15 因不同设计而异
C0:
寄存器0,ID编码寄存器
这是一个用于返回设备ID编码的只读寄存器
你可以通过将opcode2设置为除1以外的值来访问CP15的ID编码寄存器R0(CRm此时应置为0)。例如:
MRC p15,0,Rd,c0,c0,0 ;返回ID寄存器的值
寄存器0,缓存类型寄存器
这是一个只读寄存器,它包含了缓存的架构和大小的信息,这就允许操作系统来确定要如何执行诸如清理缓存
和锁定缓存的操作。所有ARMv4T版本及以后的带缓存处理器都包含这个寄存器,允许实时操作系统的厂商生产
他们的操作系统的试验版本。
你可以通过将opcode_2设置为1来访问CP15的缓存类型寄存器R0。如:
MRC p15,0,Rd,c0,c0,1 ;返回关于缓存的详细信息
C1: P186
1.禁止/使能MMU以及其他的与存储系统相关的功能.
2.配置存储系统以及ARM处理器中的相关部分的工作方式.
读:
mrc p15, 0, r0, c1, 0, 0
写
mcr p15, 0, r0, c1, 0, 0
边栏推荐
- Data Lake survey
- 客户经理的开户二维码开户买股票安全吗?有谁知道啊
- Oracle Spatial creating spatial tables
- 使用php脚本查看已开启的扩展
- Cesium draw point line surface
- Mui scroll bar recovery
- cnds
- 网络 | 衡量网络好坏的指标及测试方法
- The cloud native data lake has passed the evaluation and certification of the ICT Institute with its storage, computing, data management and other capabilities
- 黑马畅购商城---3.商品管理
猜你喜欢
Idea local launch Flink task
ThingsPanel 發布物聯網手機客戶端(多圖)
Use PHP script to view the opened extensions
Explanation of ideas and sharing of pre-processing procedures for 2021 US game D (with pre-processing data code)
Capacity expansion mechanism of Dict Of redis (rehash)
Data Lake survey
confluence7.4.X升级实录
devsecops与devops的理解与建设
使用php脚本查看已开启的扩展
Rank sum ratio comprehensive evaluation method for common models in mathematical modeling
随机推荐
The idea of mass distribution of GIS projects
实现领域驱动设计 - 使用ABP框架 - 系列文章汇总
Actual combat summary of Youpin e-commerce 3.0 micro Service Mall project
How terrible is it not to use error handling in VFP?
Hook技术
Detailed explanation of Flink checkpoint specific operation process and summary of error reporting and debugging methods
Develop two modes of BS mode verification code with VFP to make your website more secure
20、wpf之MVVM命令绑定
客户经理的开户二维码开户买股票安全吗?有谁知道啊
Network related encapsulation introduced by webrtc native M96 basic base module
The service layer reports an error. The XXX method invalid bound statement (not found) cannot be found
Convergence by probability
Simple use of stream
VFP function to summarize all numeric columns of grid to cursor
黑马畅购商城---6.品牌、规格统计、条件筛选、分页排序、高亮显示
交易期货沪镍产品网上怎么开户
云原生数据湖以存储、计算、数据管理等能力通过信通院评测认证
[regression analysis] understand ridge regression with case teaching
网络 | traceroute,路由跟踪命令,用于确定 IP 数据包访问目标地址所经过的路径。
. Using factory mode in net core