This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM263P4-Q1:了解每个内核测量 CPU 负载率的函数

Guru**** 2680875 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1590298/am263p4-q1-about-the-function-for-measuring-cpu-load-rate-per-core

器件型号: AM263P4-Q1

在 AM263Px MCU+ SDK 09.02.00 环境中、我们使用测量 Core1-0 上运行的任务的 CPU 负载、周期为 5msTaskP_loadGetTotalCpuLoad()
我们还使用来衡量任务执行时间ClockP_getTimeUsec()。 但是、根据任务执行时间计算出的 CPU 负载与 API 报告的 CPU 负载之间存在显著差异。 哪些因素会导致这种差异、我们应该检查什么?

以下是测量示例:

  • 5 毫秒周期任务 CPU 负载:5.677%
  • 5 毫秒周期任务执行时间:963.380µs

由于 963.380 / 5000 = 0.192676、基于执行时间的 CPU 负载应约为 19.2676%、但测量的 CPU 负载仅为 5.677%、远低于预期。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

     TaskP_loadGetTotalCpuLoad 还 在内部使用 ClockP_getTimeUsec 来计算负载。

    在对其进行基准测试时、您是否仅运行 1 个任务?

    我认为在这里发生的事情是,你基准测试的任务可能是上下文切换,而这段额外的时间也被添加到你的 ClockP_getTimeUssec () 测量中,这可能会导致不匹配。

    您能否仅用一个任务就尝试一下、这样它们就不会进行上下文切换? 在本例中、它应该与 TaskP_loadGetTotalCpuLoad 匹配

    谢谢。此致、

    Nikhil Dasan