FreeRTOS学习笔记——SysTick中断_freertos tick中断-CSDN博客
FreeRTOS 之六 任务调度原理解析(Systick、PendSV、SVC)_freertos m0-CSDN博客
FreeRTOS中关于时间的管理分为两部分:一部分是任务的延时管理;前面叙述过一些,还有一部分就是SysTick中断,管理任务的延时时间。SysTick是由STM32内核提供的,时钟源可选,用于产生FreeRTOS所需要的系统时钟,且是由用户可配的,用户在FreeRTOSConfig.h文件中配置configCPU_CLOCK_HZ以及configTICK_RATE_HZ两个宏来设置系统时钟,产生时间片时间,系统每隔固定时间进入SysTick中断处理时间。
有关时钟配置的初始化函数在port.c文件中,如下
void prvSetupTimerInterrupt( void )
{
/* Configure SysTick to interrupt at the requested rate. */
*(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
*(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
}
配置的是portNVIC_SYSTICK_LOAD和portNVIC_SYSTICK_CTRL两个寄存器,有关SYSTICK寄存器的说明可以在armv6-m体系结构参考手册中查看