您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > MTK架构及系统原理-赵峰
MTK平台架构及系统原理讲解:赵峰2009年7月LONGCHEERCONFIDENTIAL目录•MTK平台介绍•MTK系统架构•MMI软件框架总体介绍MTK平台介绍MTK平台介绍•什么是平台?–平台是程序运行所依赖的环境。比如windows就是平台,它提供各种程序运行所以来的环境,不管是超级解霸还是msn还是ie都可以在windows上运行。当然windows是个大平台,很基础的。所以又叫操作系统。MTK平台介绍•什么是MTK平台?–MTK平台是手机开发和运行的一个环境–为MTK套片开发了一套软件方案MTK平台介绍•MTK平台有哪些?–MTK芯片:6227、6225、6230….MTK平台介绍•MTK平台操作系统?–NucleusNucleusPLUS嵌入式操作系统是目前最受欢迎的操作系统NucleusPLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,NucleusPLUS是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。在典型的目标环境中,NucleusPLUS核心代码区一般不超过20K字节大小。NucleusPLUS采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于采用了软件组件的方法,NucleusPLUS各个组件非常易于替换和复用。NucleusPLUS的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。MTK系统架构MTK系统架构•设备架构•芯片的外部设备及控制口MMI软件框架总体介绍MMI软件框架总体介绍ApplicationLayerUILayerOperatingSysten&protocolStackLayerFrameworkMMI基本架构MMI基本架构•Applicationlayer(应用层)––用户定义的应用.•Frameworklayer(框架层)–管理信息和事件处理–管理应用流程–提供抽象的操作系统•UIlayer(UI层)–管理用户界面相关的功能。代码结构•Customer•MMI代码结构和导航•目录树–Alarm:-头文件和源文件----闹铃应用程序。–AsyncEvents:-包含头文件和源文件----处理异步事件如硬件和协议事件–Audio:-包含头文件和源文件----音频管理–Calendar:-包含头文件和源文件-----日历应用程序。–CallManagement:-包含头文件和源文件-------电话通话管理代码结构和导航–Calls:call管理–CommonScreens:包含头文件和源文件共同屏幕使用的所有应用程序。–DateTime:包日期和时间的应用函数。–Framework:管理应用信息,流程控制和操作系统应用–FunandGames:FunandGames应用–GPIO:操纵各种外部设备,如背光,振子,发光二极管模式。–GUI:管理用户界面相关功能。代码结构和导航•Inc:包含头文件对所有应用include头文件和宏定义•MiscFramework:thePixtelMMIplatform管理字体和支持Unicode…•Organizer:工具管理应用•PhoneBook:电话本应用•Profiles:情景模式应用•SAT:SIM卡应用工具包•Settings:设置应用程序•Shortcuts:快捷键的应用•ToDoList:代办事项应用•……任务结构-浅析MMIQueueNETWORKSIMULATOR/L4NS/L4QueueOPERATINGSYSTEMLAYERMMITASK任务结构-浅析•Tasks-任务MMITask–管理应用程序。任务结构-浅析•任务会从相关的消息队列中读取消息•MMIQueue:–L4向MMIQueue写消息,MMI从MMIQueue读取消息。•L4/NSQueue:–TheMMItask将MMI的事件写入L4/NSQueue,L4task/NetworkSimulator从L4/NSQueue中读取消息.任务结构-详解(续)。•MMITaskWaitsontheMMIqueue.–通过协议栈从消息队列中提取消息。MessagesinthisqueueareputbytheProtocolStack.–FrameworkLayer处理事件.–FrameworkLayer通过回调回到应用层–Applicationlayer使用UILayercategoryfunctions和themes做屏幕显示。任务之间事件流程-示例1•两个例子:–Keypresseventstoapplications.KeyPressEventNETWORKSIMULATOR/L4MMIQueueFRAMEWORKAPPLICATION任务之间事件流程-示例1•TheProtocolstackwritesaneventtotheMMIQueue•MMITaskreadsfromMMIqueue–Frameworkmakesapplicationfunctioncallbackforlatesteventregistration–Applicationreceiveskeypressevent.任务之间事件流程-示例2•Secondexample–RequesttoplaysoundfromapplicationsNETWORKSIMULATOR/L4MMIQueueFRAMEWORKAPPLICATION任务之间事件流程-示例2•ApplicationmakescalltoframeworklayerforpassingmessagetoL4queue.•FrameworkwritesmessagetotheL4Queue.•TheL4taskreadseventfromtheL4queueandplaysrequestedsound.人机界面-简述EventHandlerHistoryOSLNVRAMFileSystemFILESYSTEMCATEGORYSCREENSUILAYERUIELEMENTS图像字体主体GRAPHICSLIBRARYWRAPPERSGRAPHICSLIBRARYIMPLEMENTATIONEventsFrom/ToL4人机界面-简述•Frameworklayer(框架层)–接收所有任务的事件–帮助应用程序的控制屏幕流.–提供封装的系统应用–Framework的成员–•EventHandlers–注册应用程序要求支持的各种活动Classificationofevents(事件分类)»ProtocolEvents(协议事件)»HighlightEvents(高亮事件)»Keyevents(按键事件)人机界面-简述•History–有助于保持屏幕流应用和存储中间数据•OSL–提供所有操作系统应用的封装函数•NVRAM–提供数据存储和检索数据的封装函数•FileSystem–提供从文件系统数据存储和检索数据的封装函数人机界面-简述•History–帮助应用程序记录屏幕流并存储屏幕数据•OSL–提供依赖操作系统调用的封装函数,•NVRAM–提供来自NVRAM的数据存储和检索数据的封装函数•FileSystem–提供来自文件系统的数据存储和检索数据的封装函数人机界面-简述•ApplicationLayer(应用层)–包含用户定义的执行应用的逻辑代码人机界面-简述•UILayer(界面处理)–提供了用户界面功能,应用–UI层包含的元素•CategoryScreens–封装各种屏幕的显示函数–处理资源,如字符串ID和图像显示的–保持独立的布局和外观屏幕的应用程序–提供history接口人机界面-简述•UIElements–这一层提供了显示能力和使用各种用户界面元素,如按钮,滚动条,菜单等–这些是界面中的控件•Themes–负责实施一套固定的外观和感觉功能的用户界面元素–Themesconsistof•物体形状和颜色•字体使用(Fonttype,style,textcolor)•其他显示属性人机界面-简述•Fonts–这是数据所使用的是图形库,显示屏幕上的字符•Images–一套独立的图像设备–如:Icons,SplashscreensandWallpapers•GraphicsLibrary(图形库)–提供图形元–包含显示字体和图像的功能下面介绍一下模块的架构及其应用handler•FrameworkLayer–EventHandlers–ProvidesAPIforapplicationtomanageeventhandlersatruntime.•KeyboardEventhandlersAPI–Typicallyusedbyapplicationsandcategoryfunctions–Setkeyhandlerforparticularkey–SetKeyhandlerforgroupofkeys–Executecurrentkeyhandlerforkeypressevent–Clearkeyhandlersforparticularkey–Clearkeyhandlersforallkeys–SpecialhandlingforPowerandEndKeyhandler•ProtocolEventHandlerAPI–Typicallyusedbyapplications–Setprotocoleventhandler.–ExecuteCurrentprotocoleventhandler.–Clearhandlerforspecificprotocolevent.–Clearallprotocoleventhandler.•Misc.Handlers–ExitHandlers•SetExithandlerforparticularscreen•ExecuteExithandlerforcurrentscreen•ClearCurrentexithandlerhistory•History–Databasecontainingsnapshotsofscreen–ImplementedasanondefaultLIFO–Structureofhistorynode–ScreenID-ofscreentobesaved•EntryFunctionPointer–toredrawthescreen•InputBuffer–tosaverunningtextdataforthisscreen•GUIBuffer–tosaveUIrelatedinformationforthisscreenhistory•HistoryAPI–AddNodetoHistory–Delete‘N’nodesfromhistory–Goback‘N’nodesinhistory–Retrievehistoryforascreen–Retrieveinputbufferforscreen–RetrieveUIbufferforscreen–DumpHistoryfordebugging–Initializehistory•Subtlefactsabouthistory–Isimplementedasstack–Firstscreensavedafterbootupisneverremoved–NewNodesareaddedtotheheadofhistoryOSLLayer•OSLLayer–ProvidesabstractionoversystemcallstomakeMMIportable–FollowingKernelobjectsarewrapped
本文标题:MTK架构及系统原理-赵峰
链接地址:https://www.777doc.com/doc-4507602 .html