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伪指令操作

推荐阅读最新更新时间:2024-11-09 06:05

消息称联发科将携手英伟达开发 ARM 架构 AI PC 处理器,有望下月公布合作细节
5 月 13 日消息,据台媒“经济日报”报道,目前有传言称联发科公司将携手英伟达开发 ARM 架构的 AI PC 处理器,预计第三季度完成设计定案(tape out),第四季度进入验证,该款新芯片据称“要价高达 300 美元(IT之家备注:当前约 2172 元人民币)”。 台媒同时表示,英伟达 CEO 黄仁勋将于 6 月 2 日“台北电脑展”开展前来台,而联发科也有望在下月公布与英伟达合作的 AI PC 处理器细节。 另据IT之家此前报道,ARM 公司计划到 2025 年春季推出自家人工智能(AI)芯片原型产品,该公司届时将成立一个 AI 芯片部门,AI 芯片将由承包商负责量产,预计将于 2025 年秋季开始大规模生产。
[嵌入式]
arm 特权模式下怎么访问 用户模式的寄存器
ARM 进入异常模式后,访问的都是各自模式的寄存器,相互模式的访问(不包括用户模式),都是用修改 CPSR 进入另一个模式后,才访问,而相互之间的CPY SET ,都是通过 unbanked regs (R0 - R7)来做的。 那么特权模式怎么访问用户态的寄存器? 其实答案是很简单的,只要修改CPSR 寄存器,设置模式位即可达到进入相应模式的目的。 MSR MRS 两个特殊指令能做到。
[单片机]
ARM寄存器分析以及异常处理方法
ARM 有7个基本工作模式 User : 非特权模式,大部分任务执行在这种模式 FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式 Supervisor :当复位或软中断指令执行时将会进入这种模式 Abort : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式 System : 使用和User模式相同寄存器集的特权模式 注意:除User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)。 Privilege中除Sys模式外,其余5种为异常模式。 各种模式的切换,可以是程序员通过代
[单片机]
<font color='red'>ARM</font>寄存器分析以及异常<font color='red'>处理</font>方法
ARM的堆栈方式
当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack); 当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack); 根据对战的生成方式分为:递增堆栈(Ascengding Stack)和递减堆栈(Decending Stack) 递增堆栈:堆栈由低地址向高地址生成 递减堆栈:堆栈由高地址向低地址生成 从而形成了四种类型的堆栈工作方式,ARM处理器支持这四种类型的堆栈工作方式。 满递减堆栈(Full decending)-FD :堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向最后一个元素。注意,最后一个元素是最后压入的数据。 空递减堆栈(Empty descending)---ED:堆
[单片机]
ARM-Linux S5PV210 UART驱动(3)----串口核心层、关键结构体、接口关系
尽管一个特定的UART设备驱动完全可以按照tty驱动的设计方法来设计,即定义tty_driver并实现tty_operations其中的成员函数,但是Linux已经在文件serial_core.c中实现了UART设备的通用tty驱动层,称为串口核心层,这样,UART驱动的主要任务变成了实现serial_core.c中定义的一组uart_xxx接口而非tty_xxx接口。   uart设备是继tty_driver的又一层封装.实际上uart_driver就是对应tty_driver.在它的操作函数中,将操作转入uart_port.在写操作的时候,先将数据放入一个叫做circ_buf的环形缓存区.然后uart_port从缓存
[单片机]
<font color='red'>ARM</font>-Linux S5PV210 UART驱动(3)----串口核心层、关键结构体、接口关系
ARMARM接口技术
#0开发工具的使用 ##0.1安装keil4 在arm资料1压缩文件中找到mdk411.rar,解压,双击MDK411.exe进行安装 ##0.2运行MDK411.EXE安装 ##0.3选择好要安装的目的位置 点NEXT,安装界面如下 ##0.4安装完成并运行 安装完成后,鼠标右键单击该程序,以管理员身份运行该程序: 把CID拷贝下来: 复制Computer ID:C2043-1B7RE ,然后运行 把CID填入上图,然后: 复制注册码: 复制注册码填入: 点ADD LIC后,提示: 提示:*** LIC Added Sucessfully *** 说明注册成功了。 ##0.5安
[单片机]
【<font color='red'>ARM</font>】<font color='red'>ARM</font>接口技术
gd32的全系列芯片有哪些?
近年来,在嵌入式市场不断发展的背景下,越来越多的芯片公司开始进入嵌入式领域,并推出了一系列嵌入式芯片产品。而***厂商嘉应(Gray-Chip)的GD32系列芯片就是其中的一员,采用了ARM Cortex-M3内核,并且整个系列不断扩充中。 那么,GD32系列芯片究竟都有哪些呢?下面我们就来一一介绍。 1、GD32F107系列芯片 GD32F107系列芯片是嘉应的第一代Cortex-M3内核MCU,也是嘉应MCU家族中最基础的一款芯片。目前主要是应用在家用电器、医疗设备、工控仪器和仪表设备、车载娱乐等领域。 2、GD32F103系列芯片 GD32F103系列芯片和STM32F103系列芯片外形是一样的,但是嘉应的芯片在价格上相对更
[单片机]
arm学习笔记六(协处理器)
协处理器是一种芯片,减轻系统微处理器的某些任务 支持多达16个协处理器,例如cp15寄存器来控制cache和存储器管理 协处理器操作指令 cdp:数据操作指令,初始化协处理器 ldc:数据加载指令,存储器到协处理器寄存器的数据传送 stc:数据存储指令,协处理寄存器到存储器的数据传送 mcr:arm处理器寄存器到协处理器寄存器的数据传送 mrc:协处理器寄存器到arm处理器寄存器的数据传送 访问cp15寄存器的指令编码格式 31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0 cond 1110 opcode_1 L crn
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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