文檔說明
在調試 i.MX RT FreeRTOSMCUXpresso SDK工程的時候, 很多網友需要添加查看每個task的runtime功能。
該功能可以在MCUXpressoIDE的TASK List(FreeRTOS)中調出來: Windows->show view->other->MCUXpresso IDEFreeRTOS->Task List(FreeRTOS),如下圖:
但是在運行i.MX RTSDK工程的時候, 會發現Runtime欄目是一個問號, 如下:
那么如何配置出具體的Runtime呢?
實際上, 我們有個國外的專家寫過一篇基于Kinetis K64的FreeRTOSruntime添加案例。
i.MX RT的SDK FreeRTOS中添加runtime的方法和KINETIS類似, 同樣需要添加一個硬件timer去做runtime的記錄。K64使用的是FTM, i.MX RT沒有FTM的模塊,可以換其他的timer, 本文使用PIT硬件定時器去添加到i.MX RTfreetos代碼中,實現 MCUXpressoSDK工程的runtime功能。
軟硬件準備如下:
MIMXRT1064-EVK
SDK_2.7.0_EVK-MIMXRT1064
MCUXpresso IDE
具體步驟
1. 導入 SDK 工程
本文以SDK FreeRTOShello 工程為基礎: SDK_2.7.0_EVK-MIMXRT1064oardsevkmimxrt1064 tos_examplesfreertos_hello 2. 添加PIT 硬件配置
配置的硬件定時器時間需要至少是 RTOS tick 時間 10 倍,從 FreeRTOSConfig.h 中可以看到 RTOS tick 時間:
#define configTICK_RATE_HZ ((TickType_t)200)
所以,需要配置 PIT 的定時時間為 200*10=2Khz
配置好之后, 點擊 update code,更新 PIT 外設驅動到工程的相關代碼中。拷貝 SDK 中的 pit.c, pit.h到導入 MCUXpresso 工程的 driver folder中
SDKpit 驅動路徑是:
SDK_2.7.0_EVK-MIMXRT1064devicesMIMXRT1064drivers
3. 修改代碼
3.1freertos_hello.c
添加頭文件
添加 PIT 中斷服務函數
添加 runtime 相關代碼
Main函數添加外設調用
Hello_task任務函數把掛起改為 vTaskDelay.
3.2 FreeRTOSConfig.h
Run time宏定義打開
添加 runtime 的宏定義相關代碼
到目前為止,所有代碼已經修改完畢。
測試結果
下面進行燒錄到 MIMXRT1064-EVK 測試:
上圖中Task List 中runtime,可以看到 hello_task, IDLE 的 runtime 百分比情況, 已經實現 runtime觀察功能。
審核編輯:湯梓紅
-
恩智浦
+關注
關注
14文章
5863瀏覽量
107659 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62223 -
SDK
+關注
關注
3文章
1038瀏覽量
46005 -
runtime
+關注
關注
0文章
17瀏覽量
2179 -
mcuxpresso
+關注
關注
1文章
41瀏覽量
4196
原文標題:【經驗分享】在i.MX RT的FreeRTOS MCUXpresso工程中添加runtime
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論