我正在使用Cortex-A15-Cortex-A7 big.LITTLE arch soc。
对于big.LITTLE处理器的bL_head.S(如果是LITTLE初始化),MRC指令使用如下: -
mrc p15, 0, r0, c0, c0, 5
现在,根据MRC指令细节,
MRC{cond} coproc, opcode1, Rd, CRn, CRm{, opcode2}
opcode2
is an optional coprocessor-specific opcode.
答案 0 :(得分:2)
有关如何解码cp15系统控制寄存器功能的信息,请参阅this page。
根据前面提到的页面Op1
= 0,CRn
= c0,CRm
= c0,Op2
= 5给出:
MPIDR Multiprocessor Affinity Register
您可以在MPDIR here找到更多信息。
答案 1 :(得分:1)
在基本上所有ARM处理器中,协处理器15用于控制当前核心的各种system functions。它不涉及多处理器群集中的其他处理器。您可以在特定于内核的技术参考手册(TRM)
中找到CP15寄存器的实际定义例如,查看您在Cortex-A7 TRM的summary table中提到的组合,我们可以看到它是MPIDR
(多处理器亲和性寄存器)。事实上,如果您按照the link进行详细说明,您将会看到完整的说明:
To access the MPIDR, read the CP15 registers with:
MRC p15, 0, <Rt>, c0, c0, 5; Read Multiprocessor Affinity Register
在您的情况下,<Rt>
为R0
。它被设置为从隐藏核心寄存器读取的MPIDR的值,然后您可以按照TRM中的描述对其进行解释。