mtk初始化和执行流程

来源:互联网 发布:税务金三系统网络风险 编辑:程序博客网 时间:2024/06/09 15:56
mtk初始化流程
hal\system\init\src\init.c
hal\peripheral\src\drv_comm.c
custom\drv\misc_drv\_default_bb\mt6250\custom_drv_init.c
Application_Initialize-->
systemInitialization();//kal
内核的初始化,及中断初始化,Initialize_FDD_tables
HWDInitialization();-->
USC_Start();//1us
时间管理
OSTD_Init();//OStimedate 初始化
RM_Init();//afterOSTD_Init()andbefore2Gand3GSMM'sinit()function
L1SM_Init();//L1
睡眠模式管理
HW_Divider_Initialization();//这个是干嘛的?
Drv_Init_Phase1();-->//一些硬件驱动初始化hal\peripheral\src\drv_comm.c
DclPMU_Initialize(); //电源管理
drv_hisr_init(); //高级中断
lpwr_init(); //low power
DclPWM_Initialize(); //PWM
DclSADC_Initialize(); //ADC
custom_drv_init(); //用户驱动初始化custom_drv_init.c
DclAUX_Initialize(); //audio
Drv_Init_Phase2();-->//一些硬件驱动初始化hal\peripheral\src

stack_init_comp_info()-->初始化task任务


MTK执行流程
MMI_task通过mmi_frm_fetch_msg_from_extQ_to_circularQ ( 将消息从外部队列复制到
循环队列),之后从循环队列读出消息并执行相应的函数。
switch (Message.msg_id)
{
case MSG_ID_TIMER_EXPIRY:
{
EvshedMMITimerHandler(&Message); //
处理定时器消息
}
break;
case MSG_ID_MMI_EQ_POWER_ON_IND:
{
开机模式
有正常启动( 用户按键盘后启动), 有充电启动, 还有闹钟闹时启动, 有异常启动。
这里所谓的启动, 有时候仅仅是显示一个用于表示状态的屏幕, 而不全是完整的启
动整个系统。
}
break;
default:
ProtocolEventHandler( ); //
处理消息
//函数是得到消息中保存对应消息处理函数的函数入口,并根据入口执行相应函数
break;


MTK平台http://bbs.16rd.com/forum-261-1.html