MTK平台软件架构软件二部王刚一.MTK方案简介联发科技介绍MTK多媒体手机平台GSM/GPRS手机软件方案二.MTK软件分层介绍软件结构图表OSL1protocolstackDevicedriverL2L3L4protocolstackMMI三.MTK方案Task架构MMItask消息处理过程example一、MTK方案简介联发科技简介1997年成立,全球第五大集成电路设计公司(台湾第一大),年营业额为10亿美金全球最大之光盘及DVD播放机芯片组制造商研发及技术中心:台北新竹深圳安徽合肥无线通信部门于2000年成立,研发手机基带/RF芯片组及软件及发展平台,部门约200工程师联发多媒体手机平台MT6218GSM/GPRSMultimediaPlatformMT6205GSMLow-EndPlatformGSM/GPRS/WCDMAMultimediaPhone3G2.5GMT6219GSM/GPRSVideoPlatformGSM/GPRS手机软件方案DSP/Layer1NucleusRTOSGSM/GPRS协议层驱动RF/UARTLCD/USB/IrDA/etc人机界面SIMToolKit短信/EMSEmailClientWAP/MMS中文输入Java联发科技提供给客户联发科技已集成客户须取得原开发商之受权On-TimeFAT二、MTK软件分层介绍MTK软件架构图表三大组成单元MS(MobileStation)执行软件:运行于MS上①操作系统Nucleus②物理层协议栈③驱动程序④gsm协议栈⑤MMIMETA:TheMobileEngineeringTestingArchitectureCatcher操作系统Nucleus实时操作系统,MTK封装了适配层,将OS封装了一些API,这些API为其他软件提供服务,如:队列,消息,timer,内存管理等L1层协议栈(GSM物理层)L1或者叫物理层,提供物理介质上的bit流传输,遵循gsm技术05系列规范为上层软件提供服务,且控制逻辑信道到物理信道的映射和安排无线控制以及TDMA桢L1层逻辑图Layer1AsynchronousLayer1ControlLayer1DriverSurroundingCellEngineL1各部分功能L1异步逻辑:处理上层软件的消息请求,发送L1处理后的结果给上层软件SurroundingCellEngine:处理相邻小区的功率测量以及同步信息获取L1层控制:处理无线环境中的TDMA时序安排,包括定时提前以及来自基站的功率控制L1驱动:DSP以及无线控制设备驱动设备驱动支持所有MCU(微处理器单元)外设的控制功能本模块处理一些用户可见操作的一些设备,如键盘,LCD等通过L4层接口,访问寄存器来控制外设MTK平台外设外设功能解释SIM:SubscriberIdentityModuleUART:UniversalAsynchronousReceiver/TransmitterSPI:SerialPortInterfaceLCD:LiquidCrystalDisplayGPIO:GeneralPurposeInput/OutputGPT:GeneralPurposeTimerRTC:RealTimeClockWDT:WatchDogTimerPWM:PulseWidthModulationAlerterKeypadPMIC:PowerManagementICBMT:BatteryChargingManagementtaskAUXtask:AuxiliarytaskADCSched.:AnalogtoDigitalConverterSchedulerUSBtask:TheUSB1.1protocolanddriverIrDAtask:TheIrDAanddriverCamera:Cameradriverforintegratingwith3rdpartycameramoduleMSDC:Memorycarddriver,supportingSD,MMCcardsandMemoryStickJPEGDecoder:SoftwareforcontrollinghardwareJPEGdecoderL2/L3/L4层协议栈本部分覆盖了许多gsm/gprs协议需求点为上层应用程序提供卓越的gsm/gprs平台软件平台非常适合手机上面的操作以及通过AT命令进行PC操作模块介绍RMIRemoteMMI,PC端通过UART口与协议栈进行通讯FMIFeaturerichMML4MMI通过L4与gsm/gprs协议栈进行通讯,包括以下子模块①ATCI:ATCommandInterpreter,解释来自PC端的命令并命令L4做相应的动作②L4A:L4adaptationLayer,MMI与L4A通过消息通信③L4C:L4Controlentity,处理所有的应用程序请求和响应④UEM:Userequipmentsadaptation,驱动相关的适配层⑤PHB:Phonebookmanagement,电话簿相关的处理,如分类等⑥SMU:SIMmanagementUnit,安全性管理以及STK⑦CSM:Circuitswitchingprotocolstackmanagement电路交换协议栈管理⑧RAC:Registrationaccesscontrol⑨SMSAL:Shortmessageserviceapplicationlayer⑩TCM:TerminalcontextmanagementNVRAMNor-volatileRAM,是MMI到Flash的一个适配层,保存一些默认设置SIMSubscriberidentitymodule.HandleSIMbehaviorasETSI11.11descriptionDATA电路交换数据服务,包括以下子模块①FAX:Group3Facsimile②TDT:Transparentcircuitswitchingdata③L2R:Layer2relayprotocolfornon-transparentcircuitswitchingdata④RLP:Radiolinkprotocolfornon-transparentcircuitswitchingdataCCCircuit-switchedcallcontrol电路交换呼叫控制SSsupplementaryservice附加服务SMSshortmessageservice短消息服务SMsessionmanagement会话管理MM/GMMmobilitymanagement移动性能管理SNDCPsub-networkdependentconvergenceprotocolLLCLogicallinkcontrol逻辑连接控制RRRadioresourcemanagement,包括以下子模块①RRM:HandlescellselectionandPLMNselection②RMPC:HandlestheproceduresinIdle/Dedicatedstateincludingthesurroundingcellschemeandmeasurementreporting③LAPDM:HandlestheproceduredefinedinGSMlayer2④RLC:Radiolinkcontrolprotocol⑤MAC:Mediumaccesscontrolprotocol⑥MPAL:AdaptationlayerforRRandL1APPPPointtoPointprotocollayer,客户端点对点协议MMI介绍UI架构应用程序与ps的通信MMIFrameworkOLS操作系统适配置层,对操作系统进行封状TaskMMI任务,与L4task进行通信Filesystem与存储设备通信,进行文件存取MMIGUI介绍Theme主题风格,主要使菜单等颜色设置,以及背景图片等UIcomponentCategoryScreen每一个界面都是一个screenFont字体风格Editor编辑筐输入法访问LCD驱动MMI定制工具MMI应用程序PhonebookMessageCallHistorySettingUserprofileFunandgameOrganizerServiceShortcutCamera…………………….三、MTK方案Task架构系统初始化HardwarebootandsetupsystemstacketcNucleusPlusRTOSinitializationHardwareInitializationTasks/Modulesinitialization/configurationTasksCreationTCT_schedule()forschedulertocontextswitchMMItask主要管理应用程序,task从与之相关的队列中读取eventMMIQueue协议栈/L4将events写入到队列中,MMItask从队列中读取eventL4QueueMMItask将MMIevents写入队列,L4task从队列中读取eventMMItaskMMI注册消息事件在MMI队列上面等待消息协议栈将消息放入MMI消息队列FrameworkLayer处理eventsFrameworklayer调用应用程序注册的回调函数回调函数中应用程序用UIcategory函数和风格进行screen显示MTKCustomer创建tasktypedefstruct{kal_char*comp_name_ptr;kal_char*comp_qname_ptr;kal_uint32comp_priority;kal_uint16comp_stack_size;kal_uint8comp_ext_qsize;kal_uint8comp_int_qsize;kal_create_func_ptrcomp_create_func;kal_boolcomp_internal_ram_stack;}comptask_info_struct;constcomptask_info_structcustom_comp_config_tbl[MAX_CUSTOM_TASKS]={/*INDX_CUSTOM1*/{CUST1,CUST1Q,210,1024,10,0,customMMI_create,KAL_FALSE},NULL,KAL_FALSE},}Tastcreatekal_boolcustomMMI_create(comptask_handler_struct**handle){staticconstcomptask_handler_structcustomcms_handler_info={MMI_task,/*taskentryfunction*/NULL,/*taskinitializationfunction*/NULL,/*taskconfigurationfunction*/NULL,/*taskresethandler*/NULL,/*taskterminationhandler*/};*handle=(comptask_handler_struct*)&customcms_handler_info;returnKAL_TRUE;}注册消息事件SetProtocolEventHandler(mmi_msg_handle_new_msg_ind,MSG_ID_SMS_NEW_MSG_INDEX_IND);for(count=0;countmaxProtocolEvent;count++){if(protocolEventHandler[count].eventID