棋子 · 2019年10月11日

PMU使用问题

大家好,最近我在AArch32的Non-secure EL1下使用PMU的overflow功能,在溢出中断中读取PMOVSR和PMOVSSET的值时得到的值为0,这样的话我就不能确定是哪个事件计数器触发的中断。大家有碰到这样的情况吗?怎么解决的?(ps:可以确定的是对这两个寄存器的写入是有效的。)

2 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年10月11日

我用的是Cortex-A53,Non-secure EL1已经是特权模式。

下图是PMOVSR寄存器在不同异常等级下的使用限制:
0.PNG

下图是PMOVSR.P<n>在ARMv8手册中的描述:

1.PNG

实际测试中,我读到的PMCR.N=6(说明该硬件上支持6个事件计数器),现在不确定的是我用的芯片是否硬件上支持EL2

(目前使用的时候没有使用EL2)

AI学习者 · 2020年05月20日

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.

你的回答