Tickless 最初设计的思想是,能被任务唤醒,也能被中断唤醒
参考文章:
freeRTOS 低功耗模式 和 空闲任务
FreeRTOS源码分析与应用开发09:低功耗Tickless模式
FreeRTOS学习十(低功耗)
【STM32】NVIC与中断控制 之 sysTick定时器
M3,M4实现tickleess的做法:
M3,M4的机制: 1.在空闲任务中记录当前计数值 2.利用systick 做一个定时器,
定时时间为下一个应用层到来的时间 3. 补偿(补偿低功耗所占用的时间, 复原tick前后代码操作耗时
不同唤醒源的补偿,没看明白不同唤醒源的补偿有啥不同)
tickless机制主要体现在这个函数:
#define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) vPortSuppressTicksAndSleep( xExpectedIdleTime )