如何获取寄存器地址:ARM Cortex A8?

3

我想获取ARM Cortex A8协处理器寄存器的物理地址,比如c9-用户使能寄存器(USEREN)。

我该如何获取它呢?

谢谢!


我非常确定您无法获取协处理器寄存器的地址。您需要使用“MRC”和“MCR”指令来访问它们。 - tangrs
1
谢谢 Tangrs!!但是在写入特定寄存器时,它实际上没有反映在确切的位置。比如说,我正在写入一个寄存器并访问它会给我正确的值。移动到其他模块并访问会给出默认值...有什么想法吗? - San
在内核模式下执行此操作。 - San
1个回答

6

并不是所有寄存器都需要存在于内存地址中。协处理器寄存器就是一个很好的例子。协处理器是单独的执行单元,大多数时候只能通过类似于 mcr / mrc 这样的指令访问它们的寄存器。


感谢Auselen提供详细的描述。请问您能否为我澄清一下,为什么我无法写入任何cp15寄存器?写入操作未能成功执行,因为从不同模块或同一模块的不同函数中获取这些寄存器的值时,返回的是默认值而非修改后的值。具体来说,我指的是用户使能寄存器:asm ("MCR p15, 0, %0, C9, C14, 0\n\t" :: "r"(1)); - San
1
我认为你可能有其他问题。 - auselen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接