您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MTK定时器消息机制分析
MTK定时器消息机制分析1.数据结构(1).stack_timer_struct定时器类型的信息结构(其主要作用似乎是用以装载待发送的定时器消息数据)(2).TIMERTABLE定时器队列节点结构(其由主要元素mmi_frm_timer_type结构及链表指针两个元素组成)(3).event_scheduler队列信息结构(4).mmi_frm_timer_type定时器信息结构2.L4定时器初始化(1).步骤...-创建MMITask-设置MMITask初始化函数-在该函数中调用L4InitTimer(2).作用初始化定时器队列并设置基本定时器1,23.发送定时器消息(1).步骤StartTimer-L4StartTimer(2).两种类型的定时器MTK中有两种类型的定时器a.NO_ALIGNMENT非队列式的,即要求立即执行的定时器,时间到了就自动被reset.b.ALIGNMENT队列式的,即可以通过队列操作,有一定的延时容忍的定时器.y其基本执行流程:执行定时器--超时?--保存timerid,eventid--timerstop||noevent?----END;|YN|||----------------------------------------------------------c.除了触摸屏和手写,其他情况下的定时器一般都是队列式的.(3).L4StartTimer的作用判断将要发送的定时器ID,根据是否是队列类型传递给不同的队列结构(event_sheduler1/event_sheduler2);(4).TimerExpiry这是作为参数传递给L4StartTimer的回调函数,由于MTK做了一定的封装,因此其内部具体回调触发过程无法得知,但根据猜测,应该是在定时时间一到,以中断的方式发出消息(MSG_ID_TIMER_EXPIRY),并将其写到MMI的循环队列.该函数可能是在L4CallBackTimer中调用的,L4CallBackTimer的作用如下:a.重置当前定时器信息结构(mmi_frm_timer_type);b.执行定时器到点后的执行函数(TimerExpiry);c.讲Timer消息写到MMI循环队列中.4.与StartTimer对应的StopTimer(1).具体实现通过调用L4StopTimer操作.(2).作用:找出指定要停止的定时器ID在队列中的位置,然后使用evshed_cancel_event将指定定时器节点从队列中删除.5.定时器消息的处理(1).步骤...-创建MMITask-设置MMITask入口函数-调用EvshedMMITimerHandler(2).evshed_timer_handler()-处理具体的定时器事件
本文标题:MTK定时器消息机制分析
链接地址:https://www.777doc.com/doc-2889181 .html