1. 摘要
本篇筆記主要介紹,在freeRTOS環境下,以STM32為例介紹如何快速獲取CPU利用率,配合CubeMonitor測試
2. 準備工作
1, IAR 8.32.1
2, STM32Cube_FW_H7_V1.6.0
3. CPU使用率
這里的CPU使用率是指在一定周期內,除過空閑任務以外的所有任務棧CPU總運行時間的比值,
osCPU_Usage = (100 - (osCPU_TotalIdleTime * 100) / CALCULATION_PERIOD); 其實就是計算出空閑任務的時間,就能獲取CPU的利用率,而空閑任務運行時間的獲取,可以利用鉤子或者叫掛鉤函數,具體在freeRTOS下就是
而我們所有的計算都是以CPU時基為基礎,在freeRTOS下以STM32H743為MCU,通常設時基為1ms,就是操作系統的TICK,而freeRTOS也提供了掛鉤函數
所以我們要使用這兩個掛鉤函數,必須先配置使能在freeRTOSConfig.h下
4. 獲取CPU利用率
在ST提供的SDK里面會有一個公共的文件cpu_utils.c和cpu_utils.h兩個文件,這兩個文件提供了獲取freeRTOS下獲取CPU利用率的方案和方法,可以供參考,我們可以將兩個文件加入工程,需要配置和修改一些東西
在cpu_utilis.c的文件開頭注釋部分有說明如何利用這個模塊,按照模塊說明,也就是我們上章節所列的首先必須使能IDEL和TICK的HOOK函數配置。,還必須定義兩個宏,對freeRTOS就可以在freeRTOSConfig.h中定義如下
在頭文件中添加函數聲明
這種方法只能用來初略估計,如需精確估計可開啟一個比sysTick 優先級高的硬件定時器來,但是在一般正式的項目中,不這樣做,這樣會影響系統的實時性。
直接調用就可以了。更多精細的測試和調試可以使用freeRTOS+Trace。
5. 測試
編譯無誤后,可以下載進行調試, 工程中有大概十幾個任務
可以看到CPU的利用率。也可以利用ST推出的CubeMonitor進行測試,下次推送將給大家安排詳細的CubeMonitor使用。
責任編輯:PSY
原文標題:如何快速獲取CPU利用率
文章出處:【微信公眾號:嵌入式程序猿】歡迎添加關注!文章轉載請注明出處。
-
cpu
+關注
關注
68文章
10911瀏覽量
213150 -
STM32
+關注
關注
2273文章
10926瀏覽量
357793 -
利用率
+關注
關注
0文章
10瀏覽量
7067 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62420
原文標題:如何快速獲取CPU利用率
文章出處:【微信號:InterruptISR,微信公眾號:嵌入式程序員】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
通過STM32CubeMonitor,實現對MCU數據監控
![通過<b class='flag-5'>STM32CubeMonitor</b>,實現對MCU數據監控](https://file1.elecfans.com/web3/M00/06/FB/wKgZPGeR2ymASYKFAACQ0Yvc0kc852.png)
低空載功耗,高能源利用率 BDA5-20W BOSHIDA DCDC
![低空載功耗,高能源<b class='flag-5'>利用率</b> BDA5-20W BOSHIDA DCDC](https://file1.elecfans.com/web2/M00/0B/D8/wKgaomcq1KGAag3BAACoeiInMZI677.png)
華納云:什么是負載均衡?優化資源利用率的策略
交換機內存利用率過高會是什么問題
服務器cpu占用率高怎么解決
臺積電產能分化:6/7nm降價應對低利用率,3/5nm漲價因供不應求
鎧俠產能利用率全面復蘇,218層NAND Flash即將量產
DC/AC電源模塊:提升光伏發電系統的能源利用率
![DC/AC電源模塊:提升光伏發電系統的能源<b class='flag-5'>利用率</b>](https://file1.elecfans.com/web2/M00/C0/F9/wKgaomXRocGAIs1BAAOQAzowCMs252.png)
恒訊科技全面解析:如何有效降低服務器CPU利用率?
520kHz和1.6MHz 高空間利用率升壓和SEPIC直流/直流穩壓器LM2735數據表
![520kHz和1.6MHz 高空間<b class='flag-5'>利用率</b>升壓和SEPIC直流/直流穩壓器LM2735數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
520kHz和1.6MHz 高空間利用率升壓和SEPIC直流/直流穩壓器LM2735-Q1數據表
![520kHz和1.6MHz 高空間<b class='flag-5'>利用率</b>升壓和SEPIC直流/直流穩壓器LM2735-Q1數據表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論