工具/软件:
尊敬的团队:
这个问题是相关主题的延续。
我的客户想知道他们是否使用了 TaskP_loadGet (),是否也会在 CPU 负载中计算更高优先级的任务?
此致、
Mari Tunnoda
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.
工具/软件:
尊敬的团队:
这个问题是相关主题的延续。
我的客户想知道他们是否使用了 TaskP_loadGet (),是否也会在 CPU 负载中计算更高优先级的任务?
此致、
Mari Tunnoda
您好、
如果要计算特定任务的负载,可以使用: TaskP_loadGet ()。 如果要计算总 CPU 负载、请使用: TaskP_loadGetTotalCpuLoad()。
TaskP_loadGet () 只计算通过 TaskP_Object *obj 传递给它的特定任务的 CPU 负载。 它不考虑其他任务(优先级较高或较低)。
因此、如果优先级较高的任务经常运行、它将:
-抢占当前任务,减少其累积运行时间 (accRunTime)
-但除非传递特定任务的句柄、否则较高优先级任务的加载不会包含在 TaskP_loadGet () 结果中。
- 以总系统运行时间的百分比形式返回单个任务的运行时间
-计算方法是: taskLoad->cpuLoad = TaskP_calcCpuLoad(taskObj->accRunTime, gTaskP_ctrl.accTotalTime)
相反、您可以使用 TaskP_loadGetTotalCpuLoad() 来检查总体 CPU 利用率、该利用率还包括所有更高优先级的任务。
- 返回除空闲任务之外的所有任务上花费的 CPU 时间百分比
-计算方法是: cpuLoad = TaskP_LOAD_CPU_LOAD_SCALE - TaskP_calcCpuLoad(idleTaskTime, gTaskP_ctrl.accTotalTime)-这个函数从 100%中减去空闲任务的 CPU 使用率,以得到总 CPU 负载
此致、
Shaunak
...并且不要忘记 在每次调用 TaskP_loadGetTotalCpuLoad() 后调用 TaskP_loadResetAll()。
(+) AM263P4-Q1:FreeRTOS CPU 负载计算稳定时间 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛