MTK平台基础培训•芯片介绍•平台软件版本•手机软件系统的构建过程•平台手机主要有哪些Feature•代码的调试技巧•手机常用的工程命令•下载及TRACE工具介绍•回调机制MTK芯片介绍BBCAMERAEDGEWCDMACPUBOOTUSBAUDIOVIDOREC6223C10WNNARM7(52M)NORNAMR,DAF,AACAVI6223DNNNARM7(52M)NORNAMR,DAF,AACN622530WNNARM7(104M)NORYMP3,AMR,DAF,AACAVI6235200WYNARM9(208M)NANDYMP3,AMR,DAF,AACAVI,MP46253200WNNARM7(104M)NORYMP3,DAF,AAC,WAV,AMRAVI,MP46268500WYYARM9(256M)NANDYMP3,DAF,AAC,WAV,AMRAVI,H.264,MP4MTK平台软件版本•因为MTK平台是一套完整的手机方案,所以除了芯片外,还提供软件,而且软件版本,他们也会定期进行升级,现在每年会发布两次差异比较大的版本,命名为XXA,XXB,XX指的是哪年,例如08年的08A,08B.然后期间还会发布一些差异小的升级版本例如:•08AW0840MP_TIANYU25_08A_PMWY_V1_F1_MMI.rar•08AW0840MP_TIANYU25_08A_PMWY_V1_F2_MMI.rar•08AW0840MP_TIANYU25_08A_PMWY_V1_F3_MMI.rar•MTK发布的软件版本存放在服务器目录下。•W0840含义:08年第40周•F1F2:修改过makefile,改动相对大些。•P1P2:没修改过makefile,只是作为一个patch,改动相对小。MTK平台软件版本•例如:•目前的版本是08AW0840MP_TIANYU25_08A_PMWY_V1_F1_MMI.rar•如果下次升级的版本修改过makefile,则版本为•08AW0840MP_TIANYU25_08A_PMWY_V1_F2_MMI.rar•如果下次升级没修改过makefile,则版本为•08AW0840MP_TIANYU25_08A_PMWY_V1_F1_P1_MMI.rarMTK手机软件系统的构建过程•MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成,10A将使用RVCT3.1编译器。MTK的软件系统使用了windows下的UNIX模拟环境MSYS,GNU开发工具链(MinGW)来进行工程的管理、配置和构建,另外还使用了perl脚本来解析用户输入的命令行参数。•MTK手机软件系统的构建使用了GNU的make,使得整个工程的构建可以自动进行,且可以灵活控制。整个构建过程由Make.bat、make2.pl、MoDIS.dsw、Gsm2.mak、Option.mak、customer_project.mak等文件控制。Gsm2.mak是构建ARM版的核心Makefile文件,整个构建过程由其控制,其他是一些启动、选项配置、子过程的文件。在MTK手机软件系统的根目录下有一个批处理文件Make.bat,这个批处理文件启动了整个工程的构建过程。在windows的命令行下,在该系统的根目录下输入命令make和相应的参数即可开始工程的构建,该批处理文件的使用方法如下所示。MTK手机软件系统的构建过程•Usage:•make[“customer”|“mt62xx”]“project”“action”[“modules”]Example:TBG2608_09B_Make.batTBG260813_7141GPRSnew•如果用EA加速编译•ea_mtkTBG2608_09B_Make.batTBG260813_7141GPRSnew••其中较常用的action有new、update、remake、gen_modis,codegen_modis这几个。•new是全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做,依赖的其他动作最多,是最彻底也是耗时最长的一个动作。MTK手机软件系统的构建过程•update是重新更新整个工程的ARM版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分,一般在增加或删除一些驱动或应用的情况下需要用update。•remake是重新编译整个工程的ARM版,该动作只是简单的重新编译链接有改动的部分,不检查依赖关系,是耗时最短的一个动作,也是最常用的动作。•大家在开发过程中尽量使用remake,尽量少使用new。•EA加速软件,buildARM软件尽量使用EA.•Incredibuild联机编译软件,buildPCSimulator的时候使用。MTK平台手机主要有哪些Feature•通话中心:通话记录,IP拨号设置,通话设置•电话簿:导入导出,添加到黑名单,白名单•设置:日期与时间,显示设置,手机设置,情景模式,网络设置•个人助理:日历,备忘录,闹钟,定时开关机,分时静音•信息:短信,彩信,小区广播•网络浏览器•天语乐园:QQ,百度搜索等第三方应用•影音空间:照相机,摄像机,相册,视频播放器,音乐播放器,录音,FM.•安全中心:手机锁,防盗追踪,来电卫士,短信卫士,自救功能,隐私保护,私密信息•文件管理器(我的文档)•娱乐天地:java,游戏,电子书•工具箱:蓝牙,计算器,秒表,单位换算,健康管理,号码地区查询MTK代码的调试技巧和常用的工程命令•EntryNewScreen(),mmi_frm_group_enter()这两个是进入每个界面一般都会执行的函数。•exec_key_handler()这个是按键后会执行的函数。•只要在这三个函数设置断点,基本就可以跟踪调试。•手机常用的工程命令:•*#8375#查看手机的软件版本•*#3641#进入工程模式下载工具FlashToolOptions下Comport选择下载线的端口USBDownload•1)PC需要安装USB驱动•2)芯片支持USB功能:6225以上•3)MTKBaseCode中make选项USB_DOWNLOAD不为NONE•4)Flashtool中options下选择usbdownload•5)长按DownloadKey:•MTK默认键:Camera•TIANYU09B:SendKey•6)下载完成时间:大概1MinuteTrace工具catcher(1)Setdatabasepath选择路径:tst\database_classb\(2)点击该图标进入loggingmode(3)点击进入端口设置(4)点击进入connect状态(5)点击进入filter设置点击,清除logA模块回调机制•主要用于异步处理•••Messagecallbackfunc()(paramcallbackfunc)•例如:•mmi_frm_set_protocol_event_handler(MSG_ID_MMI_UM_GET_MSG_LIST_REQ,(PsIntFuncPtr)mmi_msg_handle_get_list_info_req,MMI_TRUE);B模块谢谢