找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2428|回复: 12
打印 上一主题 下一主题
收起左侧

如何计算MCU利用率(负载率)

[复制链接]
跳转到指定楼层
楼主
请教MCU利用率(负载率)怎么计算?STC8H8K64U.  查了一下,好像是 1-(空闲时间/运行总时间)*100%。可是具体到实际案例里怎么操作呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-2-7 02:59 | 只看该作者
先定义什么是空闲,然后在空闲位置置标志位,开定时中断,读标志位,如果置1则变量空闲加1,然后置零。如果标志位置零则变量忙加1,然后计算变量空闲和变量忙的比例即为负载率。
回复

使用道具 举报

板凳
ID:1034262 发表于 2023-2-7 10:20 | 只看该作者
STC系列单片机没有专门的模块统计CPU利用率,我要测量的话,是在MCU的GND脚串联0.1欧姆电阻采样电流并放大10~40倍(注意要用速度比较高的运放,一般要Ft要5MHz以上,我用100MHz的运放)。
程序中,主循环跑一次就进入空闲,任何中断都可以退出空闲,并且有一个定时器中断作为系统节拍,比如10ms,这样保证任何中断都能运行并且退出空闲,每隔10ms就会运行一圈主程序。
然后,示波器观察采样的电流波形,就可以看到MCU运行的时间了。
回复

使用道具 举报

地板
ID:1059013 发表于 2023-2-7 12:06 | 只看该作者
闻所未闻,单片机即使跑最简单的主循环也是100%利用的,或者讲外设单元的使用率还差不多
回复

使用道具 举报

5#
ID:1044091 发表于 2023-2-7 13:12 来自手机 | 只看该作者
因为有朋友在某帖子里提过一次,正好我这个项目代码也差不多了,就想详细了下
回复

使用道具 举报

6#
ID:161164 发表于 2023-2-7 15:18 | 只看该作者
可在Keil仿真模式中查看






双击要观测的函数






运行



停止,然后观看,空闲87.2%



函数A占12.7%



函数B占0.1%



回复

使用道具 举报

7#
ID:1034262 发表于 2023-2-7 15:26 | 只看该作者
fishafish 发表于 2023-2-7 12:06
闻所未闻,单片机即使跑最简单的主循环也是100%利用的,或者讲外设单元的使用率还差不多

那是因为你没关心过MCU的负载率,如果经常满载,可能会偶发隐含的问题。我基本上,用什么单片机做产品程序,都会测试MCU的负载率(忙时间占比),并在源码中标注。
特别是复杂又要实时的程序,我是必须知道MCU负载率的。
回复

使用道具 举报

8#
ID:526108 发表于 2023-2-7 15:35 | 只看该作者
单片机裸奔不存在cpu使用率,那必须是100%利用,全速跑你的代码
回复

使用道具 举报

9#
ID:130230 发表于 2023-2-7 17:58 | 只看该作者
这个利用率是操作系统里面的概念,操作系统户有一个空闲任务,该任务优先级最低只要有高优先级就会被抢占。所以利用率的定义应该是1-空闲任务cpu占用率。实现也比较简单就是进入临界区后在空闲任务里面做计数操作,然后退出临界区再搞一次。裸机的话利用率就是100%了
回复

使用道具 举报

10#
ID:401564 发表于 2023-2-7 22:35 | 只看该作者
单片机不跑系统,不存在利用率这一说
不管是在干嘛
就是while(1);
它也是100%的利用率
新手最优先考虑的是代码逻辑的正确性
然后再开始考虑合理的,利用片上的资源,有的人开了几个中断就卡死在中断里,出不来了
最后,当你学得差不多的时候,你就能自然而然的理解了"效率"这个词语,并能有效的去复用它了
回复

使用道具 举报

11#
ID:1044091 发表于 2023-2-7 22:55 | 只看该作者
lkc8210 发表于 2023-2-7 15:18
可在Keil仿真模式中查看

感谢指导!不过在硬件仿真状态下点“setup”没反应呢?是不是硬件仿真状态下不能用?
回复

使用道具 举报

12#
ID:1044091 发表于 2023-2-7 23:02 | 只看该作者
coody_sz 发表于 2023-2-7 10:20
STC系列单片机没有专门的模块统计CPU利用率,我要测量的话,是在MCU的GND脚串联0.1欧姆电阻采样电流并放大1 ...

这个方法好,不过我现在既不会玩运放,也没有示波器只有一个山寨逻辑分析仪,查了一下应该也能用,我研究研究~
回复

使用道具 举报

13#
ID:142059 发表于 2023-2-8 13:20 来自手机 | 只看该作者
Y_G_G 发表于 2023-2-7 22:35
单片机不跑系统,不存在利用率这一说
不管是在干嘛
就是while(1);

是的,上了操作系统,才有任务利用率一说,裸机利用率100%
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表