MTK 定时器 休眠时的动作

void StartTimer(U16 timerid, U32 delay, FuncPtr funcPtr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/

/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE(MMI_FW_TRC_G1_FRM, TRC_MMI_FRM_TIMER_START_ALIGN_TIMER, timerid, delay, funcPtr);


L4StopTimer(timerid);
L4StartTimer(timerid, (oslTimerFuncPtr)funcPtr, (void *)timerid, delay, TIMER_IS_ALIGNMENT);
}

关键是上面的TIMER_IS_ALIGNMENT 这个参数,

1.如果是TIMER_IS_NO_ALIGNMENT,定时器会在手机进入睡眠模式的时候停止,但是定时准确,误差在1ms以内.
2.如果是TIMER_IS_ALIGNMENT则定时器不会停,但是却会被delay.在MTK25上可能被delay150-300ms之间.MTK28上大约是50-60ms.

原文地址:https://www.cnblogs.com/inteliot/p/2992216.html