This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Cortex-A7 Timer寄存器访问

大家好,我在读取Cortex-A7 Timer的Physical Counter Register(CNTPCT)时遇到一个问题。 根据手册这个寄存器是通过CP15进行访问的,CRm=14,op1=0,长度是64bit。

我的代码是 mcrr p15, 0, r0, r1, c14。然而在执行时却被当作了Undefined Instruction。 在手册里的确提到了Undefined Instruction是MCRR可能的一种结果,但没有具体解释。

根据手册,在访问这个寄存器之前,已经在monitor/nonscure mode中在CNTHCTL.PL1PCEN和PL1PCTEN写了1。CNTPCT访问那条是在Supervisor/nonscure mode. 这句分别编译成THUMB和ARM都试了。

希望大神指点一二。谢谢!

Parents
  • 你好,CNTPCT是一个只读寄存器所以不能用MCRR(写操作)而是应该用MRRC(读操作)来访问。

    如果在Supervisor/Nonsecure mode, 只需要把 CNTHCTL.PL1PCTEN 设成1应该就可以读CNTPCT了。

Reply
  • 你好,CNTPCT是一个只读寄存器所以不能用MCRR(写操作)而是应该用MRRC(读操作)来访问。

    如果在Supervisor/Nonsecure mode, 只需要把 CNTHCTL.PL1PCTEN 设成1应该就可以读CNTPCT了。

Children