首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >皮质-r5 PMU循环计数器未正确计数时间

皮质-r5 PMU循环计数器未正确计数时间
EN

Stack Overflow用户
提问于 2019-06-26 02:42:44
回答 1查看 584关注 0票数 1

我已经为PMCCNTR正确地配置了PMU,以便在运行FreeRTOS的Cortex-R5上勾选。我将省略配置代码,因为它已经在许多其他StackOverflow问题上重复了。我相信配置是正确的,因为我尝试运行

__asm__ volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr))

周期性地,我能够看到pmccntr变量单调地增加,并在(2^32-1)之后翻滚。

CPU以800 1Hz运行,所以我希望如果我在1Hz任务中读取PMCCNTR,我会注意到这个值会增加800 1Hz。然而,1Hz任务调用之间的PMCCNTR差异更多地是7200万次。我还试着玩64分频器,以确保我的观察是正常的。

我的数学正确吗?或者我使用错误的数字作为CPU频率?什么是确定的方法来计算PMCCNTR应该计数的频率?

更新:的根本原因是WFI @Sean指出

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 09:26:39

只要计数器未被禁用且核心未处于调试状态,PMCCNTR就会在核心时钟运行。如果你计算72兆赫/1.125 MHz,那么你的核心很有可能运行在外部晶体频率上,而不是来自内部锁相环。

另一个可能的解释是,内核处于WFI状态,大部分时间时钟停止-在这种情况下,您测量的结果将受到操作系统所做工作量的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56764455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档