程序结构:
1、主线程的构建 appMain.c/appMain_Create():
2、主线程服务构建 _appMain_Task()
清空服务:
memset(_appMain.appList, 0, sizeof(AppGetInfo)*APP_NUM_MAX);
添加服务:如菜单/DEMOD/监控/时间日期等服务
3、服务间的切换及通信:
举例:当前ZAPPER APP,要切换到UI APP,并执行UI的命令,即启动ABS “E_APP_CMD_STARTUP_ABS_MENU”
不同服务的切换都是在"AppMain Task"线程完成。
4、当前服务命令的处理 MApp_Menu.c:
如:UI服务命令处理 _appMenu_CommandRcv():
注意:CMD/MSG的分发在_appMenu_Create()的新建"Menu_TASK"线程完成,回调“_appMenu_TaskEntry()”中处理。
即每个服务的调度,都会在服务的Create中新建THREAD中处理。
5、_appMenu_Create()的"_appMenu_TaskEntry()"CMD及MSG处理
_appMenu_TaskEntry()完成了SERVICE到TurnKey入口MApp_ZUI_MainTask()的交接,
如下:取到CMD处理后,其它转到ZUI TurnKey 的总入口MApp_ZUI_MainTask()处理:
另外,本机键/BOOK预约检测BK_Monitor_CheckBook()/多媒体播放控制MApp_MPlayer_Task()
6、TurnKey ZUI总入口: MApp_ZUI_Main.c->MApp_ZUI_MainTask():
消息/定时器的获取及分发
内存地址转化:MemPA2VA()/MemVA2PA()