历史上的今天
今天是:2024年10月26日(星期六)
2021年10月26日 | ARMv7-A 处理器窥探(2) —— CP15 协处理器
2021-10-26 来源:eefocus
1、ARMv7-A 协处理器
ARMv7-A 处理器除了标准的 R0~R15,CPSR,SPSR 以外,由于引入了 MMU、TLB、Cache 等内容,ARMv7-A 使用协处理器来对这些扩展来进行管理,ARMv7-A 支持 16 个协处理器,编号从 CP0~CP15,其中的 CP15 协处理器称之为系统控制协处理器,CP15 协处理器下的寄存器包含了 MMU、TLB、Cache等关键组件,其余的 CP0~CP14 有的控制Debug功能,有的控制 SIMD,有的控制浮点,咱们暂时只关注关键的 CP15;
2、CP15 协处理器
2.1、组成
CP15 协处理器由16个子寄存器组成,分别为 c0~c15,所以 CP15 的层次关系为:

这里的 c0~c15 不是寄存器的含义,而是主(Primary Register)寄存器的意思,也就是每个 c0~c15 中,包含很多寄存器组:
比较常用的 c0~c15 的寄存器组织如下


所以,针对 CP15 协处理器相关的层次结构总结下来为(这里以c0为例,c1~c15同样有很多寄存器,每个寄存器都是 32bits 的):

2.2、访问指令
与 CPSR 类似,协处理器的访问是通过指定的汇编指令进行访问;常用的有 MCR/MRC 两条:
MRC: 将 CP15 协处理器中的寄存器数据读到 ARM 寄存器中。
MCR: 将 ARM 寄存器的数据写入到 CP15 协处理器寄存器中。
使用这两条指令,外加一些标准的指令,就可以实现读改写;
2.2.1、MCR
MCR 指令的格式如下:
MCR
史海拾趣
|
一段 你刚开始进入这行,对PMOS/NMOS/BJT什么的只不过有个大概的了解,各种器件的特性你也不太清楚,具体设计成什么样的电路你也没什么主意,你的电路图主要看国内 杂志上的文章,或者按照教科书上现成的电路,你总觉 ...… 查看全部问答> |
|
请问linux-2.6.22.14内核自带SD卡的 驱动么? 源文件夹下有/drivers/mmc,同时make menuconfig的时候也选择了SD/MMC选项, 编译 的 时候从log看也编译了 mmc下的文件。 但是,下载到开发板上后启动log里却没有mmc,sd这样的信息,同时/dev/mmcblk0文件也存在。… 查看全部问答> |
|
我现在完全按数据手册所有控制和地址,数据口上的时序都对的,可是读写仍然没反应,有用过改片子的兄弟嘛,默认该RAM上电后,内容是多少?是0x00还是0xFF… 查看全部问答> |
|
玩这个片子一年啦,可没找到战友呀!我的qq是8814405,有搞这个加我,最近有其他项目,暂时没搞,逛到这里,str9还是冷冷清清,悲哀呀。。。。看到有人问I2C问题,贴上我以前的代码,看能不能借鉴?算是推广一下了!/************************ ...… 查看全部问答> |
|
请问版主,STM32的datasheet中标明USB控制端点是有8个的,可是现在我一使用控制端点4会出现问题,具体描述如下: 1.使用官方版本STM32_USB_FS_Device_Lib_V3.1.1中的JoyStickMouse例程,运行正常。 2.将Dvice_Table中的EP_NUM改为5,将JoySt ...… 查看全部问答> |
|
quartus 调用modelsim 仿真时 出现错误 不能找到这个altera.alt_dspbuilder_package 昨晚一晚上也没解决 ,哪位大侠指点一二 ,多谢… 查看全部问答> |




