找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5220|回復: 12
打印 上一主題 下一主題
收起左側

如何計算MCU利用率(負載率)

[復制鏈接]
跳轉到指定樓層
樓主
ID:1044091 發(fā)表于 2023-2-6 23:35 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
請教MCU利用率(負載率)怎么計算?STC8H8K64U.  查了一下,好像是 1-(空閑時間/運行總時間)*100%?墒蔷唧w到實際案例里怎么操作呢?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2023-2-7 02:59 | 只看該作者
先定義什么是空閑,然后在空閑位置置標志位,開定時中斷,讀標志位,如果置1則變量空閑加1,然后置零。如果標志位置零則變量忙加1,然后計算變量空閑和變量忙的比例即為負載率。
回復

使用道具 舉報

板凳
ID:1034262 發(fā)表于 2023-2-7 10:20 | 只看該作者
STC系列單片機沒有專門的模塊統(tǒng)計CPU利用率,我要測量的話,是在MCU的GND腳串聯(lián)0.1歐姆電阻采樣電流并放大10~40倍(注意要用速度比較高的運放,一般要Ft要5MHz以上,我用100MHz的運放)。
程序中,主循環(huán)跑一次就進入空閑,任何中斷都可以退出空閑,并且有一個定時器中斷作為系統(tǒng)節(jié)拍,比如10ms,這樣保證任何中斷都能運行并且退出空閑,每隔10ms就會運行一圈主程序。
然后,示波器觀察采樣的電流波形,就可以看到MCU運行的時間了。
回復

使用道具 舉報

地板
ID:1059013 發(fā)表于 2023-2-7 12:06 | 只看該作者
聞所未聞,單片機即使跑最簡單的主循環(huán)也是100%利用的,或者講外設單元的使用率還差不多
回復

使用道具 舉報

5#
ID:1044091 發(fā)表于 2023-2-7 13:12 來自觸屏版 | 只看該作者
因為有朋友在某帖子里提過一次,正好我這個項目代碼也差不多了,就想詳細了下
回復

使用道具 舉報

6#
ID:161164 發(fā)表于 2023-2-7 15:18 | 只看該作者
可在Keil仿真模式中查看






雙擊要觀測的函數(shù)






運行



停止,然后觀看,空閑87.2%



函數(shù)A占12.7%



函數(shù)B占0.1%



回復

使用道具 舉報

7#
ID:1034262 發(fā)表于 2023-2-7 15:26 | 只看該作者
fishafish 發(fā)表于 2023-2-7 12:06
聞所未聞,單片機即使跑最簡單的主循環(huán)也是100%利用的,或者講外設單元的使用率還差不多

那是因為你沒關心過MCU的負載率,如果經常滿載,可能會偶發(fā)隱含的問題。我基本上,用什么單片機做產品程序,都會測試MCU的負載率(忙時間占比),并在源碼中標注。
特別是復雜又要實時的程序,我是必須知道MCU負載率的。
回復

使用道具 舉報

8#
ID:526108 發(fā)表于 2023-2-7 15:35 | 只看該作者
單片機裸奔不存在cpu使用率,那必須是100%利用,全速跑你的代碼
回復

使用道具 舉報

9#
ID:130230 發(fā)表于 2023-2-7 17:58 | 只看該作者
這個利用率是操作系統(tǒng)里面的概念,操作系統(tǒng)戶有一個空閑任務,該任務優(yōu)先級最低只要有高優(yōu)先級就會被搶占。所以利用率的定義應該是1-空閑任務cpu占用率。實現(xiàn)也比較簡單就是進入臨界區(qū)后在空閑任務里面做計數(shù)操作,然后退出臨界區(qū)再搞一次。裸機的話利用率就是100%了
回復

使用道具 舉報

10#
ID:401564 發(fā)表于 2023-2-7 22:35 | 只看該作者
單片機不跑系統(tǒng),不存在利用率這一說
不管是在干嘛
就是while(1);
它也是100%的利用率
新手最優(yōu)先考慮的是代碼邏輯的正確性
然后再開始考慮合理的,利用片上的資源,有的人開了幾個中斷就卡死在中斷里,出不來了
最后,當你學得差不多的時候,你就能自然而然的理解了"效率"這個詞語,并能有效的去復用它了
回復

使用道具 舉報

11#
ID:1044091 發(fā)表于 2023-2-7 22:55 | 只看該作者
lkc8210 發(fā)表于 2023-2-7 15:18
可在Keil仿真模式中查看

感謝指導!不過在硬件仿真狀態(tài)下點“setup”沒反應呢?是不是硬件仿真狀態(tài)下不能用?
回復

使用道具 舉報

12#
ID:1044091 發(fā)表于 2023-2-7 23:02 | 只看該作者
coody_sz 發(fā)表于 2023-2-7 10:20
STC系列單片機沒有專門的模塊統(tǒng)計CPU利用率,我要測量的話,是在MCU的GND腳串聯(lián)0.1歐姆電阻采樣電流并放大1 ...

這個方法好,不過我現(xiàn)在既不會玩運放,也沒有示波器只有一個山寨邏輯分析儀,查了一下應該也能用,我研究研究~
回復

使用道具 舉報

13#
ID:142059 發(fā)表于 2023-2-8 13:20 來自觸屏版 | 只看該作者
Y_G_G 發(fā)表于 2023-2-7 22:35
單片機不跑系統(tǒng),不存在利用率這一說
不管是在干嘛
就是while(1);

是的,上了操作系統(tǒng),才有任務利用率一說,裸機利用率100%
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表