看zynq上FreeRTOS源码(版本号freertos823),得出以下结论
1. 定时器
FreeRTOS的定时器肯定离不开硬件定时器,在portZYNQ7000.c中有FreeRTOS_SetupTickInterrupt()函数,使用全局定时器中断产生Tick来计时,其中bsp配置栏中有configTICK_RATE_HZ参数(默认100),即1s内产生100个Tick,而该Tick则由
XScuTimer_LoadTimer( &xTimer, XSCUTIMER_CLOCK_HZ / configTICK_RATE_HZ );
给出,其中XSCUTIMER_CLOCK_HZ即CPU主频。
此外,FreeRTOS_SetupTickInterrupt()函数等同于configSETUP_TICK_INTERRUPT(),会在xPortStartScheduler()中调用,即在vTaskStartScheduler()中调用,因此不开启任务调度前,定时器是不工作的
a.定时器引申