MTK开机流程 - MMI部分(VC模拟器)

来源:互联网 发布:sql 添加字段默认值 编辑:程序博客网 时间:2024/06/06 01:50

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()      // Unicode
gdi_init()                // GDI
mdi_audio_init()          // AUDIO
mdi_init()                // MDI
mdi_webcam_init()         // 网络摄像头
InitMMIUsbContext()       // USB
InitProtocolEvents()      // Protocol Event
InitFramework()           // Framework
InitHardwareEvents()      // Protocol Event
InitTime()                // Date Time
setup_UI_wrappers()       // WGUI
PopulateResData()         // 资源文件,包括字符串、图片、音频等
PowerAndEndKeyHandler()   // Power And End Key Handle
InitStringLanguage()      // 多国语言
mmi_um_init()             // 短消息
mmi_dispatch_init()       // 彩信
InitCallManagement()      // 通话记录
mmi_vt_init()             // Video Telephony
mmi_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()                 // 重复初始化,直接return
exit_custom_startup_screen()          // 退出动画
ShowWelcomeScr()                      // 显示welcom界面
ShowIdleAppSubLcd()                   // 显示子屏
mmi_bootup_exit_welcome_screen()      // 退出welcom界面
mmi_bootup_entry_network_searching()  // 搜网
EntryIdleScreen()                     // 进入待机界面

本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_wangyunyin_24391.html

原创粉丝点击