gpt4 book ai didi

assembly - 了解 ARM7 上的 MRC

转载 作者:行者123 更新时间:2023-12-02 16:42:51 25 4
gpt4 key购买 nike

我是 ARM 新手,正在尝试理解 MRC 指令。

据我了解,MRC是读取协处理器寄存器并将其放入主Core寄存器中。

现在协处理器附加到主核上,用于控制主核的内存子系统。协处理器如何附加到主核处理器上。有人能指出一些好的图吗?

下面是关于arm7 cpu核心的指令

  /* workaround to disable secure state */
mrc p15, #0, r0, c1, c1, #0
orr r0, r0, #1
mcr p15, #0, r0, c1, c1, #0
isb

现在我找不到 mrc 指令中发生的情况

1.mrc 的第一个参数是协处理器编号(p0 与 p15 有何不同)。

2.第二个参数是协处理器的opcode1(不确定)。

3.第三个参数是主要核心寄存器(好的)。

4.第四个和第五个参数是协处理器寄存器(c1,#0的结果是否存储到c1中)?

5.Agin 最终参数是 opcode2(不确定)。

谢谢

最佳答案

ARM 中的

协处理器是一个误导性的概念。它是不通过核心指令集公开的可选功能的简写。 ARM CPU 是模块化的。架构的实现者可能会也可能不会将一些 CPU 硬件放在芯片上。内存管理单元(MMU)就是一个例子;还有其他的,例如硬件调试工具。实际上,它们是通过协处理器编号 (pXX) 来标识的,因此可以同时存在多个协处理器。 MMU 的协处理器编号传统上是 p15。协处理器 p0..p14 与内存管理无关,并且可能不存在。例如,调试子系统是 p14。

MRC 和 MCR 命令用于向协处理器发送命令。助记符再次有些误导 - 命令的效果可能不仅仅是寄存器移动。它更像是 MRC 代表“向协处理器发送命令并获取一些数据”,而 MCR 是“向协处理器发送命令并传递一些数据”。这么想吧。这就是操作码的用途——这是给协处理器的命令。有时,具有特定 coproc# 和操作码的 MCR/MRC 命令甚至会在汇编器中获得单独的助记符(例如 FPU 命令)。

协处理器操作码和寄存器编号的具体细节因协处理器而异。既然您感兴趣的是 MMU,请仔细阅读该特定的 MMU;它将解释特定操作如何映射到操作码和 coproc 寄存器号。

关于assembly - 了解 ARM7 上的 MRC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19544694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com