大家好,最近我在AArch32的Non-secure EL1下使用PMU的overflow功能,在溢出中断中读取PMOVSR和PMOVSSET的值时得到的值为0,这样的话我就不能确定是哪个事件计数器触发的中断。大家有碰到这样的情况吗?怎么解决的?(ps:可以确定的是对这两个寄存器的写入是有效的。)
我用的是Cortex-A53,Non-secure EL1已经是特权模式。
下图是PMOVSR寄存器在不同异常等级下的使用限制:
下图是PMOVSR.P<n>在ARMv8手册中的描述:
实际测试中,我读到的PMCR.N=6(说明该硬件上支持6个事件计数器),现在不确定的是我用的芯片是否硬件上支持EL2
(目前使用的时候没有使用EL2)
The PMOVSR Register is accessible in:
Privileged mode
User mode only when the PMUSERENR.EN bit is set to 1, see c9, User Enable Register.