溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在freeRTOS環(huán)境下如何快速獲取CPU利用率

發(fā)布時(shí)間:2021-12-22 17:07:41 來源:億速云 閱讀:467 作者:柒染 欄目:互聯(lián)網(wǎng)科技

在freeRTOS環(huán)境下如何快速獲取CPU利用率,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。


1. 摘要  

在freeRTOS環(huán)境下,以STM32為例介紹如何快速獲取CPU利用率,配合CubeMonitor測試

2. 準(zhǔn)備工作

    1, IAR 8.32.1

    2, STM32Cube_FW_H7_V1.6.0

3. CPU使用率

這里的CPU使用率是指在一定周期內(nèi),除過空閑任務(wù)以外的所有任務(wù)棧CPU總運(yùn)行時(shí)間的比值,

osCPU_Usage = (100 - (osCPU_TotalIdleTime * 100) / CALCULATION_PERIOD);  其實(shí)就是計(jì)算出空閑任務(wù)的時(shí)間,就能獲取CPU的利用率,而空閑任務(wù)運(yùn)行時(shí)間的獲取,可以利用鉤子或者叫掛鉤函數(shù),具體在freeRTOS下就是

在freeRTOS環(huán)境下如何快速獲取CPU利用率

而我們所有的計(jì)算都是以CPU時(shí)基為基礎(chǔ),在freeRTOS下以STM32H743為MCU,通常設(shè)時(shí)基為1ms,就是操作系統(tǒng)的TICK,而freeRTOS也提供了掛鉤函數(shù)

在freeRTOS環(huán)境下如何快速獲取CPU利用率

所以我們要使用這兩個(gè)掛鉤函數(shù),必須先配置使能在freeRTOSConfig.h下

在freeRTOS環(huán)境下如何快速獲取CPU利用率

4. 獲取CPU利用率

在ST提供的SDK里面會有一個(gè)公共的文件cpu_utils.c和cpu_utils.h兩個(gè)文件,這兩個(gè)文件提供了獲取freeRTOS下獲取CPU利用率的方案和方法,可以供參考,我們可以將兩個(gè)文件加入工程,需要配置和修改一些東西

在freeRTOS環(huán)境下如何快速獲取CPU利用率

在freeRTOS環(huán)境下如何快速獲取CPU利用率

在cpu_utilis.c的文件開頭注釋部分有說明如何利用這個(gè)模塊,按照模塊說明,也就是我們上章節(jié)所列的首先必須使能IDEL和TICK的HOOK函數(shù)配置。,還必須定義兩個(gè)宏,對freeRTOS就可以在freeRTOSConfig.h中定義如下

在freeRTOS環(huán)境下如何快速獲取CPU利用率

在頭文件中添加函數(shù)聲明

在freeRTOS環(huán)境下如何快速獲取CPU利用率

這種方法只能用來初略估計(jì),如需精確估計(jì)可開啟一個(gè)比sysTick 優(yōu)先級高的硬件定時(shí)器來,但是在一般正式的項(xiàng)目中,不這樣做,這樣會影響系統(tǒng)的實(shí)時(shí)性。

對外的API接口

在freeRTOS環(huán)境下如何快速獲取CPU利用率

直接調(diào)用就可以了。更多精細(xì)的測試和調(diào)試可以使用freeRTOS+Trace。

在freeRTOS環(huán)境下如何快速獲取CPU利用率

5. 測試

編譯無誤后,可以下載進(jìn)行調(diào)試, 工程中有大概十幾個(gè)任務(wù)

在freeRTOS環(huán)境下如何快速獲取CPU利用率

在freeRTOS環(huán)境下如何快速獲取CPU利用率

可以看到CPU的利用率。也可以利用ST推出的CubeMonitor進(jìn)行測試,下次推送將給大家安排詳細(xì)的CubeMonitor使用。

6. 參考文檔

序號

文獻(xiàn)

1

STM32H743RM

2

3, STM32Cube_FW_H7_V1.6.0

看完上述內(nèi)容,你們掌握在freeRTOS環(huán)境下如何快速獲取CPU利用率的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI