MTK开机流程-MMI部分(VC模拟器)基于53平台09A版本,通过VC模拟器调试,整理出一条大概的MMI开机流程,后续完善。
- 创建MMI task进程mmi_create()
- MMI task初始化MMI_Init()mmi_frm_init_key_event() // 按键初始化L4InitTimer() // 计时器初始化setup_UI_wrappers() // WGUI初始化mmi_fe_init() // 字体初始化
- MMI task接收消息事件MMI_task()InitEventHandlersBeforePowerOn() // 事件初始化MMI_MTPNP_master_init()以及MMI_MTPNP_slave_init() // 主副SIM卡初始化msg_get_ext_queue_info() // 获取消息mmi_frm_fetch_msg_from_extQ_to_circularQ() // 消息转换OslNumOfCircularQMsgs() // 获取消息个数OslReadCircularQ() // 读取消息信息switch (Message.msg_id){ ... case MSG_ID_MMI_EQ_POWER_ON_IND: // 开机事件 break; ...}SetDateTime() // 设置时间gdi_init() // GDI初始化switch (p->poweron_mode){ ... case POWER_ON_KEYPAD: // 按键开机 ...}MTPNP_AD_Init() // AD初始化,还不太清楚PhnsetSetUARTConfig() // UART配置DTGetRTCTime(&StartUpTime); // 获取开机时间
- MMI 启动流程mmi_bootup_start()mmi_bootup_entry_disk_check() // 磁盘检查mmi_frm_power_on_init_procedure() // 开机初始化FlightModeCheckBeforeAnimation() // 检测飞行模式InitializeAll() // APP初始化InitNvramDataBeforeAnimation() // NV初始化
- APP初始化InitializeAll()InitUnicodeSupport() // Unicodegdi_init() // GDImdi_audio_init() // AUDIOmdi_init() // MDImdi_webcam_init() // 网络摄像头InitMMIUsbContext() // USBInitProtocolEvents() // Protocol EventInitFramework() // FrameworkInitHardwareEvents() // Protocol EventInitTime() // Date Timesetup_UI_wrappers() // WGUIPopulateResData() // 资源文件,包括字符串、图片、音频等PowerAndEndKeyHandler() // Power And End Key HandleInitStringLanguage() // 多国语言mmi_um_init() // 短消息mmi_dispatch_init() // 彩信InitCallManagement() // 通话记录mmi_vt_init() // Video Telephonymmi_ucm_init() // 呼叫initialize_UI_demo() // UI环境InitNetWorkBootUpEventsCallBack() // 网络InitProfileApp() // 情景模式InitSimDetection() // SIM卡 短消息...
- 初始化完成后,开机动画switch (p->poweron_mode){ ... default: ProtocolEventHandler(...); break; // 默认处理 ...}MTPNP_AD_Bootup()mmi_bootup_dual_sim_start() // SIM卡mmi_bootup_dual_sim_start_bootup_by_mode() // SIM卡MTPNP_PFAL_Master_Startup_Normal() // SIM卡PowerOnNormalMode() // 正常模式开机mmi_bootup_entry_animation() // 开机动画mmi_pwron_entry_animation_screen() // 开机动画界面gui_start_timer(force_stop_time, mmi_pwron_force_terminate_display) // 设置强制关闭动画计时器mmi_pwron_show_image_callback() // 动画完成回调EntryPhnseFactoryDefaultCalibrationScr() // 屏幕校准mmi_bootup_exit_animation() // 动画结束mmi_bootup_entry_low_battery_warning() // 检查电量mmi_bootup_entry_security_check() // 安全检查,包括SIM卡密码,SIM卡是否可用等goto_opening_screen()InitAllApplications() // 重复初始化,直接returnexit_custom_startup_screen() // 退出动画ShowWelcomeScr() // 显示welcom界面ShowIdleAppSubLcd() // 显示子屏mmi_bootup_exit_welcome_screen() // 退出welcom界面mmi_bootup_entry_network_searching() // 搜网EntryIdleScreen() // 进入待机界面