13.ARM协处理器的知识

发布者:SereneSoul55最新更新时间:2024-10-30 来源: cnblogs关键字:ARM  协处理器  数字处理 手机看文章 扫描二维码
随时随地手机看文章

处理器中有协处理器来辅助处理器完成部分功能的,主要是协助作用。

协处理器:

协处理器用于执行特定的处理任务,如:数学协处理器可以控制数字处理,以减轻处理器的负担。ARM可支持多达16个协处理器,其中CP15是最重要的一个。

 

在ARM9、ARM11、cortexa8等核中,CP15的功能都是一样的。

在ARM11核的文档看到图1-1:

The section gives an overall view of the system control coprocessor. For detail of the registers

in the system control coprocessor, see System control processor registers on page 3-13.

The purpose of the system control coprocessor, CP15, is to control and provide status

information for the functions implemented in the ARM1176JZF-S processor. The main

functions of the system control coprocessor are:

• overall system control and configuration

• cache configuration and management

• Tightly-Coupled Memory (TCM) configuration and management

• Memory Management Unit (MMU) configuration and management

• DMA control

• system performance monitoring.

The system control coprocessor does not exist in a distinct physical block of logic.

图1-1

从上面知道:

系统控制协处理器的功能是:

  1. 系统整体控制和配置

  2. 缓存配置和管理

  3. 紧耦合的内存(CTM)的配置和管理

  4. 内存管理单元(MMU)的配置和管理。

  5. DMA控制

  6. 系统性能控制。

确切的说,ARM11核中有16组协处理器,不是16个,每一组里面有很多寄存器,下面来看ARM11核的c0组里的Main ID寄存器。

System control processor registers

This section gives details of all the registers in the system control coprocessor. The section

presents a summary of the registers and detailed descriptions in register order of CRn,

Opcode_1, CRm, Opcode_2.

You can access CP15 registers with MRC and MCR instructions:

MCR{cond} P15,,,,,

MRC{cond} P15,,,,,

Register allocation

Table 3-2 on page 3-14 lists the allocation and reset values of the registers of the system control

coprocessor where:

• CRn is the register number within CP15

• Op1 is the Opcode_1 value for the register

• CRm is the operational register

• Op2 is the Opcode_2 value for the register.

• Type applies to the Secure, S, or the Non-secure, NS, world and is:

— B, registers banked in Secure and Non-secure worlds. If the registers are not banked

then they are common to both worlds or only accessible in one world.

— NA, no access

— RO, read-only access

— RO, read-only access in privileged modes only

— R/W, read/write access

— R/W, read/write access in privileged modes only

— WO, write-only access

— WO, write-only access in privileged modes only

— X, access depends on another register or external signal.

Main ID寄存器的参数:

从上面c0组的Main ID寄存器,有32位,这32位被分成了5个地址段。例如[15:4]地址段是表明这是ARM11的处理器。此处的值是0xB76

 

前面的知识看到了,控制CP15协处理器,主要是设置对应的寄存器来实现控制的。接着就是来介绍如何访问协处理器的寄存器的,并且实现设置。

主要是通过两个命令来实现的mcr和mrc:r表示register普通寄存器,c表示coprocessor协处理器。

mcr命令中m表示move,c表示coprocessor,r表示register。所以mcr的意思就是把普通寄存器register的内容移到协处理器c里面。

mcr命令中m表示move,c表示coprocessor,r表示register。所以mrc的意思就是把协处理器c里面的内容移到普通寄存器register里面。

 

指令的格式:

You can access CP15 registers with MRC and MCR instructions:

MCR{cond} P15,,,,,

MRC{cond} P15,,,,,

上面是CP15的访问格式,CP14-CP0同理。

各个参数的值,上面的表格已经给出了:

 

上图看到在c0组的Main ID寄存器,在设置mrc,把Main ID寄存器的内容读到r1寄存器:

从上图知道:

  1. CRn=c0:c0组的

  2. Op1=0

  3. CRm=c0

  4. Op2=0

  5. Rd=r1:就是要把Main ID读到r0寄存器。

这样就设置好了。接下来实验访问Main ID:

读取Main ID指令:

MRC P15,0,r1,c0,c0,0

运行结果:

读出来的值是0x410fb766,这跟我们的核手册的说明里的值是一致的,下图。说明读取成功:

上图中[31:24]=0x41,[23:20]=0x0,[19:16]=0xF,[15:4]=0xB76,最后四位[3:0]是修订位,是在0x0到0x7之间,这里是6,也是对的。所以读出正确。

 

上面就是对CP15里的Main ID的读取操作。

 

接下来是往Control寄存器里写数据:

往c1组的Control寄存器写入r1寄存器的值:

MCR P15,0,r1,c1,c0,0

上面运行了,就把r1的值写进去了。


关键字:ARM  协处理器  数字处理 引用地址:13.ARM协处理器的知识

上一篇:14.Bootloader设计思路
下一篇:12.ARM伪指令操作

推荐阅读最新更新时间:2026-03-25 11:48

ARM基础学习-协处理器CP15
CP15负责管理ARM中存储管理系统; 常用如下命令来操作CP15的寄存器; MCR{cond} coproc,opc1,CRd,CRn,CRm,opc2 //将arm寄存器中的数据传送到协处理的寄存器当中; MRC{cond} coproc,opc1,CRd,CRn,CRm,opc2 //将协处理的寄存器传送到arm寄存器 coproc 指令操作的协处理器名.标准名为pn,n,为0~15 opc1 协处理器的特定操作码. 对于CP15寄存器来说,opcode1永远为0,不为0时,操作结果不可预知 CRd 作为目标寄存器的协处理器寄存器. CRn 存放第1个操作数的协处理器寄存器. CRm 存放第2个操作数的协处
[单片机]
<font color='red'>ARM</font>基础学习-<font color='red'>协处理</font>器CP15
ARM协处理器访问指令(Linux学习记录)
什么是协处理器? 协处理器用于执行特定的处理任务,如:数学协处理器可以控制数字处理,以减轻处理器的负担。ARM可支持多达16个协处理器,其中CP15是最重要的一个。 CP15的作用? 系统控制协处理器,CP15提供额外的寄存器,用于配置和控制缓存。MMU,保护系统,时钟模式,以及其他的系统选项,如大或小门的操作。 如何访问CP15? 通过CP15提供的16组寄存器,来达到访问目的。 协处理器访问:mcr (把通用寄存器的值复制或移动到协处理器中的寄存器中)、mrc(把协处理器中的寄存器的值复制或移动到通用寄存器中) 访问例: MCR{cond} P15, Opcode_1 , Rd , CRn , C
[单片机]
ARM协处理器指令
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令 ......
[单片机]
浅析ARM协处理器CP15寄存器有关指令:MCR\MRC
背景:   在uboot中,start.s中涉及到了 CP15 的有关操作。查阅有关资料,进行学习。 mrc p15, 0, r0, c1, c0, 0 bic r0, r0, #0x00002000 @ clear bits 13 (--V-) bic r0, r0, #0x00000007 @ clear bits 2:0 (-CAM) orr r0, r0, #0x00000002 @ set bit 1 (--A-) Align orr r0, r0, #0x00000800 @ set bit 11 (Z---) BTB mcr p15, 0, r0, c1, c0, 0 在基于ARM的嵌入式系统中
[单片机]
浅析<font color='red'>ARM</font><font color='red'>协处理</font>器CP15寄存器有关指令:MCR\MRC
ARM9硬件协处理器在WinCE嵌入式主板上的应用
随着微电子和嵌入式技术的蓬勃发展,基于高性能ARM理器的嵌入式工控机平台,以其体积小、可靠性高、成本低等优点,克服了传统工控机体积庞大、故障率高以及难以较长时间适应于工业控制恶劣环境等缺点,广泛应用于工业控制领域。英创公司的嵌入式主板正是适应这样的发展趋势,迅速成长为嵌入式主板的主要供货商之一。 嵌入式操作系统是嵌入式工控机系统的核心技术之一。WinCE(Windows CE)系统是Windows家族中的成员,专门为嵌入式设计的微内核操作系统。这样的操作系统可使便携式技术与现有的Windows桌面技术整合工作。它是一个抢先式多任务、多线程的并具有强大通信能力的32位嵌入式操作系统。 WinCE是实时性较强的嵌入式操作系统,
[单片机]
<font color='red'>ARM</font>9硬件<font color='red'>协处理</font>器在WinCE嵌入式主板上的应用
arm协处理器有几个?ARM协处理器详解
  ARM概述   ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。   ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。
[单片机]
<font color='red'>arm</font>的<font color='red'>协处理</font>器有几个?<font color='red'>ARM</font><font color='red'>协处理</font>器详解
ARM 协处理器及其指令
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令,ARM 的协处理器指令主要用于: 1 ARM 处理器初始化 2 ARM 协处理器的数据处理操作 3 在ARM 协处理器的寄存器和处理器的寄存器之间传送数据 4 在ARM 协处理器的寄存器和存储器之间传送数据 ARM 协处理器指令包括以下5条 (1) CDP 协处理器数操作指令 (2) LDC 协处理器数据加载指令 (3) STC 协处理器数据存储指令 (4) MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 (5) M
[单片机]
ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令 1、
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved