i.MX RT500 FreeRTOS 修改 Systick 时钟频率

本文将介绍 RT500 如何在 FreeRTOS 下修改 systick 时钟频率。

 

首先来看 systick 的时钟源有哪些,在 MCUXpresso 打开 freertos_hello 工程,点击配置工具,选择时钟:

 

 

可以看到 systick 的时钟源有 mainclk 分频得到,1MHz 的 LPCOSC ,RTC 时钟 32KHz ,

 

 

现在默认是使用 mainclk 198MHz ,实际上使用中并不需要很大的频率,频率高意味着功耗也会过高,现在将 systick 和 system clock 的频率都降低为 12MHz ,

 

 

在 FreeRTOSConfig.h 中添加如下宏:

 

 

在 port.c 中选择 systick 的时钟源为 system 分频后的时钟:

 

 

将 task 的内容修改下,串口循环发送:

 

 

 

 

修改后编译下载,发现并没有跑起来,进调试可以看到跑到 vTaskDelay 函数就跑出错了,这时候找到参考手册 systick config 寄存器介绍:

 

 

CPU 的时钟得比分频后的时钟高 2.5 倍以上,我们将分频后的时钟改为 4MHz :

 

 

再次编译下载就可以看到代码已经正常跑起来了,这里的主要的地方就在于这个分频后的时钟需要比主时钟低,这里的配置同样适用于裸机。

 

 

参考资料:

  1. 《IMXRT500RM》

用户手册包含了外设配置方法,由 NXP 官网提供下载,链接如下:

https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt500-crossover-mcu-with-arm-cortex-m33-dsp-and-gpu-cores:i.MX-RT500?tab=Documentation_Tab

 

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论