快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

我们在操作一些系统寄存器时,明明是想操作这个样子的ICV_IGRPEN1_EL1,但你翻到代码的最底层看到的操作的是这个样子的s3_0_c12_c12_7, 这是为什么呢?
/*******************************************************************************
* Definitions for CPU system register interface to GICv3
******************************************************************************/
#define ICC_IGRPEN1_EL1 S3_0_C12_C12_7
#define ICC_SGI1R S3_0_C12_C11_5
#define ICC_SRE_EL1 S3_0_C12_C12_5
#define ICC_SRE_EL2 S3_4_C12_C9_5
#define ICC_SRE_EL3 S3_6_C12_C12_5
#define ICC_CTLR_EL1 S3_0_C12_C12_4
#define ICC_CTLR_EL3 S3_6_C12_C12_4
#define ICC_PMR_EL1 S3_0_C4_C6_0
#define ICC_RPR_EL1 S3_0_C12_C11_3
#define ICC_IGRPEN1_EL3 S3_6_c12_c12_7
#define ICC_IGRPEN0_EL1 S3_0_c12_c12_6
万能的stack overflow上找到答案:ARM register definition S3_0_C12_C12_7

(其实主要是说,这是编译器定义的吧)
本文探讨了在ARMv8/ARMv9架构中,如何理解和使用系统寄存器,特别是针对ICV_IGRPEN1_EL1与底层代码中对应的s3_0_c12_c12_7之间的关系。博客详细解释了这些编译器定义的寄存器映射,并引用了StackOverflow上的解答,揭示了它们在实际操作中的意义和用法。
195

被折叠的 条评论
为什么被折叠?



