• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何计算单片机CPU负载率

hehung 2018-11-20 浏览量:5402
单片机的负载率如何计算,就是想电脑一样可以读取到cpu的使用率
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 其实单片机永远不会闲着

    所谓负载率针对有操作系统的。

    当单片机在完成有意义的工作时,认为有负载。

    处于延时、等待某个事件时的空循环,认为是空闲。

    许多操作系统都会有个空闲任务,空闲任务一般不干“正事”。我们可以在空闲任务里加个计数器,每秒累加一次。大多数MCU都会有个RTC,系统可以读取单片机运行了多长时间。两者相除,就可以得到空闲比。


    我认为,对单片机开发来讲,空闲比只对开发者有意义,可以了解代码的运行效率。

    空闲比太小,代码是否需要优化了。

    空闲比太大,考虑是否换个低档次的MCU降低成本。

    • 发布于 2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 你搭系统了吗,像ucosFreeRTos之类的系统内有空闲任务,你检测空闲任务的使用情况,可以大概反映出CPU的工作负载率
    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机没有所谓的空闲吧,只有操作系统才有
    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是查看单片机是在执行有用的指令还是在等待(延时),将延时时间除以总时间就是空闲率,运行时间除以总时间是负载率
    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机不会降频,睿频的,一开机时钟设置好,就按照一个主频运行下去,除非进低功耗模式

    单片机负载其实是计算任务使用的时间,假如 1000 次心跳,任务占用了 400 个,负载就是 40%,通过 idle 钩子函数自己实现的,粗略能看出单片机负载,不是很精确,因为有中断,有任务自己调度等,会干扰

    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 用操作系统就可以了,里面有输出cpu负载率,比如ucos

    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个直接开辟一个新线程,然后计算一些特定任务所耗费的时间就知道了。
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果运行操作系统的,可以找个空闲进程计时,然后开一个定时器,计算整个系统的运行时间,然后对比空闲进程的时间和整个系统的运行时间,得到的就是一个负载率
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个可以在RTOSk中使用空闲的进程去测量的
    • 发布于2018-12-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如何计算单片机CPU负载率