一、只有进入定时器守护任务,从定时器命令队列取出命令,队列空间才会空出一个可用空间;全部定时器公用一个定时器队列函数
二、若是使用软件定时器,在调度器开始前,会自动建立一个定时器守护任务,configTIMER_TASK_STACK_DEPTH和configTIMER_TASK_STACK_DEPTH用于设置这个守护任务的栈大小和任务优先级,各个定时器的回调函数是定时器守护任务调用的函数;哪一个定时器定时时间到就执行哪一个定时器回调函数,若是某个回调函数调用可能致使阻塞的函数,就会影响其余回调函数的调用周期,因此不建议在回调函数调用可能致使阻塞的函数,而且回调函数执行周期尽量的短spa
三、定时器守护任务进入准备态的条件:定时器命令队列非空,或者定时器定时时间到队列
四、由于发送给定时器命令队列的命令包含时间戳(time stamp,用来记录调用命令和命令被定时器守护任务处理的时间段),因此一调用xTimerStart(...)函数,定时器就开始计时,而不是等到进入定时器守护任务执行“开始命令”才计时,其余命令效果同样,好比重启定时器、改变定时器周期。回调函数
五、void vApplicationTickHook( void )也能够做为定时器回调函数使用,周期是一个tick period。io