【经验分享】在i.MX RT的FreeRTOS MCUXpresso工程中添加runtime
来源:恩智浦MCU加油站发布时间:2023-06-082932浏览
询问 AI文档说明
在调试 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添加案例: https://mcuoneclipse.com/2018/08/02/tutorial-using-runtime-statistics-with-amazon-freertos-v10/
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-MIMXRT1064\boards\evkmimxrt1064\rtos_examples\freertos_hello2. 添加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-MIMXRT1064\devices\MIMXRT1064\drivers
添加 PIT 中断服务函数
添加 runtime 相关代码
Main函数添加外设调用
Hello_task任务函数把挂起改为 vTaskDelay.
3.2 FreeRTOSConfig.h Run time宏定义打开
添加 runtime 的宏定义相关代码
到目前为止,所有代码已经修改完毕。测试结果下面进行烧录到 MIMXRT1064-EVK 测试:

上图中Task List 中runtime,可以看到 hello_task, IDLE 的 runtime 百分比情况, 已经实现 runtime观察功能。
恩智浦MCU加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

长按二维码,关注我们
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号

NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
新闻来源:恩智浦MCU加油站,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。

