单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 1 MTK架构分析 MTK架构分析作者: 康勤开发日期: 康佳学院 KONKA GROUP KONKA COLLEGE 单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 3 Framework 介绍?启动流程? Queue 相关? Event 相关? History 相关单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 4 启动流程?在 InitApplication(); 函数中创建了几个线程, 用这几个线程来模拟手机中的不同的任务线程。并且为这些任务创建了不同的消息队列。?这些创建的线程中其中有一个是主要的, 此线程的入口函数是 MMI_task 。单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 5 启动流程?函数 MMI_task 主要完成的是不停的读取 protocol task 中的消息,然后根据消息和参数进行相应的处理函数。?在函数 MMI_task 里读取了消息后,用一个 switch 语句来选择处理方式。?当系统收到这个消息 MSG_ID_MMI_EQ_POWER_ON_IND 时候,系统根据当前系统的状态来决定启动的方式单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 6 启动流程?正常启动(用户按键盘启动)中首先调用了函数 InitializeAll ,这个是系统启动的初始化函数。?接着函数 InitNvramData ,让一些需要读 nvram 的模块读出 nvram 中的数据,以此来初始化这些需要用到 nvram 中的数据来初始化的模块。单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 7 启动流程?初始化后调用函数 fast_openscreen ,这个函数就是系统启动后进入主屏幕的函数。?在fast_openscreen 里开始就播放开机动画及声音,点亮显示屏,并且设置好当开机画面播放完后需要执行的回调函数。当动画播放结束就直接调用此回调函数。单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 8 启动流程?最后进入 EntryIdleScreen 函数,这个函数就是程序的初始界面。并且在里面把左软键设置为进入主菜单,右软件设置为进入电话本。?到这里,一个启动过程总算结束了,以后的事情都交给注册好的事件响应函数和菜单响应函数去做。单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 9 Queue 相关?在InitApplication ()时,我们创建不同的线程,同时创建不同的线程所对应的消息队列。?全局数组 task_info_g1 是一个 osl_task_info 类型的数组,此类型有个成员变量 task_ext_qid ,它是 oslMsgqid 类型的。就是这个变量保存着消息队列指针。单击以编辑母版标题样式?单击以编辑母版文本样式?第二级?第三级?第四级?第五级 10 Queue 相关?发消息函数 OslIntMsgSendExtQueue 向协议栈写入消息。这个函数向协议栈写入一个 MYQUEUE 类型的消息,这个消息是由用户自己定义的。?操作接口函数:从队列中收消息 OslReceiveMsgExtQ 和向队列发消息 OslMsgSendExtQueue ,消息是一个 MYQUEUE 结构类型,它包含发出消息者和消息要到达的地方。
MTK架构分析 来自淘豆网m.daumloan.com转载请标明出处.