【问题标题】:How to get address of a register: ARM Cortex A8?如何获取寄存器地址:ARM Cortex A8?
【发布时间】:2013-03-22 05:26:31
【问题描述】:

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

我怎样才能得到它?

谢谢!!

【问题讨论】:

  • 我很确定您无法获得协处理器寄存器的地址。您可以使用 MRCMCR 指令访问它们。
  • 谢谢唐人!!但是在写入特定寄存器时,它实际上并没有反映在确切的位置。比如说,我正在写一个寄存器并访问它给了我适当的价值。进入其他模块并访问会给出默认值。有什么想法吗?
  • 在内核模式下执行此操作。

标签: arm cpu-registers cortex-a8


【解决方案1】:

并非所有寄存器都需要存在于内存地址中。协处理器寄存器就是一个很好的例子。协处理器是独立的执行单元,大多数时候访问其寄存器的唯一方法是通过 mcr / mrc 之类的指令。

【讨论】:

  • 感谢 Auselen 的详细描述。您能否解释一下为什么我无法写入任何 cp15 寄存器?写作没有完成,因为从不同的模块或来自同一模块的不同功能获取它们会给我默认值而不是修改后的值。具体来说,我说的是用户启用寄存器:asm ("MCR p15, 0, %0, C9, C14, 0\n\t" :: "r"(1));
  • 我会说你可能还有其他问题。
  • 感谢您的意见。我会调查的。
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 2011-05-11
  • 2021-12-30
  • 1970-01-01
相关资源
最近更新 更多