您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > mtk的MMI架构开发指导
ManMachineInterface2AgendaMTKSoftwareArchitectureMTKMMIArchitectureExampletoWriteanApplicationThirdPartySoftwareToolQ&AMTKSoftwareArchitecture4MTKSoftwareArchitectureSoftwareArchitectureKALandOSLDateTypeTaskManagement5SoftwareArchitecture6SoftwareArchitecture–abbreviationsRMI:RemoteMMI,i.e.,PCside,whichusesATcommandstocommunicatewithProtocolstack.L4:TheadaptationlayerbetweenMMI/ATandprotocolstack.L4A:Layer4Adaptationtotranslateprimitivessentfromupperlayerstofunctioncalls.L4C:Layer4Controller,coordinatesallL4modulestoserveupperlayers.ATCI:ATCommandInterpreter.UEM:UserEquipmentsmoduleusedtoabstractbasicdevicedriverslikekeypad,LED,GPIO.PHB:PhoneBookmanagement.SMU:SecurityManagement(SIM,STK).CSM:CallServiceManagement(bearercapabilityhandling,CSD/FAXservice,CC,SS).RAC:RegistrationAccessControl(GSM/GPRSregistrationmanagement,PLMNlist/selection,RSSIreport)SMSAL:SMSApplicationLayer(messagestorage,MO/MTmessages,CB).TCM:TerminalContextManagement(PDPcontextprofiles,contextactivate/deactivate,relayofpacketdata),interfacetoPPP/TCPIP/SNDCP.ENG:EngineerModetologinformation.7KAL(KernelAbstractionLayer)TargetRealTimeOperatingSystemGSMHandsetSoftwareGSMHandsetSoftwareKernelAbstractionLayer(KAL)TargetRealTimeOperatingSystemXXTest/DebugFacilitiesPortabilityCommondesignphilosophyTest/DebugfacilitiesEasiercodeintegration8KALServicesKALServicesTest/Logging/SimulationfacilitiesExceptionhandlingResource/MemorymanagementTaskmanagement/communication/synchronizationTimerControlTask-ATask-BReference:KAL_ProgrammingGuide_20041005.pdfSystemServiceUserManual_20050527.pdf9OSLNucleus,orotherRTOSKALOSLPCsimulator–simulatetheOSLservicesonWin32tofacilitatedevelopmentanddebuggingMMItaskonPC.N.B.toensureallprogramswithinMMItaskcanruncorrectlyonPC,useofOSLAPIsisMUST.10DataTypesGeneraldatatypes:Kal_non_specific_general_types.hKALspecificdatatypesandfunctions’prototypes:Kal_release.hOSLspecificdatatypesusedwithinMMITasks:PixtelDataTypes.h11TaskManagement&Identificationmodule_typeandtask_indx_typeDefinedin“Stack_config.h”Usedtodefineindexofallmodulesandalltasksmod_task_g[RPS_TOTAL_STACK_MODULES]Definedin“syscomp_config.c”UsedtomapMODULE-IDtoTASK-IDsys_comp_config_tbl[RPS_TOTAL_STACK_TASKS+1]Definedin“syscomp_config.c”Usedtodefineinformationofalltasks,e.g.,task’sname,taskqueue’sname,priority,sizeofexternal/internalqueue,taskcreationfunction,whethertouseinternalram.custom_comp_config_tbl[MAX_CUSTOM_TASKS]Usedforcustomerdefinedmodulesortasks.task_info_g[RPS_TOTAL_STACK_TASKS+1]Globalarraycontainingcomponenttaskinformation,whichwillbefilledinwhilecallingstack_init_comp_info().module_info_g[MAX_MULTIMOD_TASK_NUM]Globalarraycontainingcomponenttaskinformation,whichwillbefilledinwhilecallingstack_init_module_info().12TaskRoutines13TaskCommunicationApp_ltlcom.hDatastructureofmassageusedforinter-layercommunicationApp_ltlcom.hDatastructureofmassageusedforinter-layercommunicationStack_ltlcom.hMacroandAPIusedtosend/freemessagesStack_ltlcom.hMacroandAPIusedtosend/freemessages14TaskCommunication–example1Toallocatememoryfromsharedmemorypool.Ctrl_buff_pool.hDefinesizeandnumberofcontrolbuffer(memorypool)Toallocatememoryfromsharedmemorypool.Ctrl_buff_pool.hDefinesizeandnumberofcontrolbuffer(memorypool)Toinitializespecificmodule’sparameterpointerandpeerbufferpointerbeforeuseit.(module_ilm_g[module_id])Toinitializespecificmodule’sparameterpointerandpeerbufferpointerbeforeuseit.(module_ilm_g[module_id])SendmessagetoothertaskSendmessagetoothertask15TaskCommunication–example2ToreceivemessagefromexternalqueueToreceivemessagefromexternalqueueToreceivemessagefrominternalqueueToreceivemessagefrominternalqueueQueueGprot.hUsageofOSLsend/receiveinternal/externalmsg.QueueGprot.hUsageofOSLsend/receiveinternal/externalmsg.MTKMMIArchitecture17MTKMMIArchitectureMMITaskstructureMMIandL4CommunicationMMIArchitecture¾FrameworkProvidesOSabstractionEventHandlersHistoryManagerNVRAMAccessFileSystemManagement¾UI,ResourceMMIDirectories18TaskstructureTaskstruct(sys_comp_config_tbl):typedefstruct{kal_char*comp_name_ptr;kal_char*comp_qname_ptr;kal_uint32comp_priority;//3-255kal_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;KAL_FALSEmmi_create100304096TASK_PRIORITY_MMI“MMIQ”MMIMMITask19Layer4AdapterExample:MOD_MMI---MOD_L4Cmmi_frm_sms_send_message()PRT_MSG_ID_MMI_SMS_SEND_MSG_REQ---------------------------------L4a_callback.cl4a_recv_msg_ft[MSG_ID_MMI_MESSAGE_SUM]_call_MSG_ID_MMI_SMS_SEND_MSG_REQ_()---------------------------------MOD_L4C---MOD_SMSALl4c_sms_exe_post_msg_req()MSG_ID_L4CSMSAL_SEND_REQ20MMIandL4Communication(1/3)HowToCommunicateSend/ReceivemessagesthruthemessageQueue.#defineOslMsgSendExtQueuemsg_send_ext_queue#defineOslReceiveMsgExtQreceive_msg_ext_qSetProtocolEventHandler(FuncCB,msg_id);CommunicationDatatypedefstructilm_struct{oslModuleTypeoslSrcId;//SourcemoduleID.oslModuleTypeoslDestId;//DestinationmoduleID.oslMsgTypeo
本文标题:mtk的MMI架构开发指导
链接地址:https://www.777doc.com/doc-4507603 .html