本篇筆記主要介紹,在freeRTOS環境下,以STM32爲例介紹如何快速獲取CPU利用率,配合CubeMonitor測試微信
2. 準備工做ide
1, IAR 8.32.1函數
2, STM32Cube_FW_H7_V1.6.0測試
3. CPU使用率spa
這裏的CPU使用率是指在必定週期內,除過空閒任務之外的全部任務棧CPU總運行時間的比值,操作系統
osCPU_Usage = (100 - (osCPU_TotalIdleTime * 100) / CALCULATION_PERIOD); 其實就是計算出空閒任務的時間,就能獲取CPU的利用率,而空閒任務運行時間的獲取,能夠利用鉤子或者叫掛鉤函數,具體在freeRTOS下就是.net
而咱們全部的計算都是以CPU時基爲基礎,在freeRTOS下以STM32H743爲MCU,一般設時基爲1ms,就是操做系統的TICK,而freeRTOS也提供了掛鉤函數3d
因此咱們要使用這兩個掛鉤函數,必須先配置使能在freeRTOSConfig.h下調試
4. 獲取CPU利用率blog
在ST提供的SDK裏面會有一個公共的文件cpu_utils.c和cpu_utils.h兩個文件,這兩個文件提供了獲取freeRTOS下獲取CPU利用率的方案和方法,能夠供參考,咱們能夠將兩個文件加入工程,須要配置和修改一些東西
在cpu_utilis.c的文件開頭註釋部分有說明如何利用這個模塊,按照模塊說明,也就是咱們上章節所列的首先必須使能IDEL和TICK的HOOK函數配置。,還必須定義兩個宏,對freeRTOS就能夠在freeRTOSConfig.h中定義以下
在頭文件中添加函數聲明
這種方法只能用來初略估計,如需精確估計可開啓一個比sysTick 優先級高的硬件定時器來,可是在通常正式的項目中,不這樣作,這樣會影響系統的實時性。
對外的API接口
直接調用就能夠了。更多精細的測試和調試可使用freeRTOS+Trace。
5. 測試
編譯無誤後,能夠下載進行調試, 工程中有大概十幾個任務
能夠看到CPU的利用率。也能夠利用ST推出的CubeMonitor進行測試,下次推送將給你們安排詳細的CubeMonitor使用。
6. 參考文檔
序號 |
文獻 |
1 |
STM32H743RM |
2 |
3, STM32Cube_FW_H7_V1.6.0 |
長按識別二維碼添加關注
本文分享自微信公衆號 - 嵌入式程序猿(InterruptISR)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。