c - 如何以编程方式从 VxWorks 获取 CPU 负载?

标签 c vxworks rtos

我有一个在 VxWorks 上运行的设备,我想知道如何检索总 CPU 负载?我知道“spyLib”,但不幸的是,我的系统不支持它。

有什么方法可以测量/计算/检索我的单核 CPU 上的总负载吗?

最佳答案

这取决于您的系统及其设计。

一种方法是创建一个最低优先级的任务,它只不过是一个空闲循环。 然后,您可以使用 taskSwitchHookAdd 来检测何时切换到和退出此空闲任务,并计算切换到和退出之间的时间增量。

问题在于,现在您的 CPU 永远不会闲置,因为优先级为 255 的任务正在消耗所有空闲的 CPU 周期。这可能是也可能不是您系统的问题。

关于c - 如何以编程方式从 VxWorks 获取 CPU 负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107818/

相关文章:

c - "undefined reference to function"C 中的错误取决于定义的位置

vxworks - 在 PC 上模拟目标

c++ - 嵌入式 RTOS 和使用 malloc/free

rtos - 在这种特定情况下 RTOS 中的互斥

c++ - 什么会延迟 VxWorks 任务的抢占?

c - snprintf 不工作 float

c - 读取Raspberry Pi上的PPM信号

c - 不同线程中的多个 epoll_wait 接收不是为它们设计的事件

c - scanf 读取整数值的意外乘法结果

c - 线程堆栈溢出