MTK手机软件系统工程和配置简介2(转载)

. MTK手机软件系统的构建过程

    如前面一节所述,MTK手机软件系统的构建使用了GNU的make,使得整个工程的构建可以自动进行,且可以灵活控制。整个构建过程由Make.bat、make2.pl、MoDIS.dsw、Gsm2.mak、Option.mak、_.mak等文件控制。构建PC模拟版是通过msdev和VC的工程文件MoDIS.dsw来完成的。Gsm2.mak是构建ARM版的核心Makefile文件,整个构建过程由其控制,其他是一些启动、选项配置、子过程的文件。其关系图如下所示。

    在MTK手机软件系统的根目录下有一个批处理文件Make.bat,这个批处理文件启动了整个工程的构建过程。在windows的命令行下,在该系统的根目录下输入命令make和相应的参数即可开始工程的构建,该批处理文件的使用方法如下所示。

Usage:
   make [
customer|mt62xx] project action [modules ]

Description:
   customer   = mtk              (Default customer)
             
= firefly17_demo   (FIREFLY17_DEMO project)
             
= [mt6217|mt6219|mt6226|mt6227|mt6228| mt6229] (EVB only)
             
=

   project    = l1s              (Layer 1 stand alone)
             
= gsm              (GSM only)
             
= gprs             (GPRS only)
             
= basic            (Basic Framework)

   action     = new              (codegen, resgen, clean, update) (default )
             
= update or u      (scan, compile, link)
             
= remake or r      (compile, link)
             
= clean or c       (clean)
             
= resgen           (resgen)
             
= c,u              (clean then update)
             
= c,r              (clean then remake)
             
= codegen          (codegen)
             
= viewlog          (open edit to view build log)
             
= emigen           (emigen)
             
= emiclean         (emiclean)

   module(s)  = modules name    (kal, l1, …)
   => OPTIONAL when action is one of (clean c remake r update u c,r c,u)

Example:
   make gsm new                          (MT6205B EVB new )
   make gprs codegen                     (MT6218B EVB codegen)
   make mt6219 gprs update               (MT6219 EVB update)
   make firefly17_demo gprs
new
   make milan_demo gprs c,u init custom
   make mt6219 gprs r init custom drv

    其中较常用的action有new、update、remake、new_modis这几个。

    new是全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做,依赖的其他动作最多,是最彻底也是耗时最长的一个动作,一般得到一个新的MTK发布版本后要做一次。

    update是重新更新整个工程的ARM版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分,一般在增加或删除一些驱动或应用的情况下需要用update。

    remake是重新编译整个工程的ARM版,该动作只是简单的重新编译链接有改动的部分,不检查依赖关系,是耗时最短的一个动作,也是最常用的动作。

    new_modis是全新构建整个工程的PC模拟版,其调用VC的编译器和链接器得到一个可以在windows上运行的PC模拟版。MMI应用软件工程师可以在没有硬件板的情况下在PC上检查和调试自己写好的应用。

    Make.bat实际上只起引导作用,其只有一行批处理语句perl make2.pl %*,于是运行该批处理文件后控制权转给了perl脚本make2.pl。在这个perl脚本中解析了用户输入的命令行参数,设置变量,准备make时需要的临时配置文件,随后根据生成的可运行映像是PC模拟版还是ARM版而分别调用不同的构建过程。

    Pc模拟版的构建通过调用如下命令实现。

        system(“$msdev MoDIS.dsw /MAKE “$argu – Win32 $modisDir””

                    /OUT ${MoDISLogDir}\${argu}.log””)

    在这里$msdev就是VC的msdev,通过VC的工程文件MoDIS.dsw和后面的参数进行具体的构建过程。熟悉VC工程的朋友应该比较清楚,因此就不再具体解释了。之后将只以ARM版为主来讲解整个工程的构建过程。

     ARM版的构建通过调用如下命令实现。

        system(“”${makeCmd} -f${makeFolder}${myMF} -r -R

                    CUSTOMER=$custom PROJECT=$project $action””)

    在这里${makeCmd}是toolsmake.exe,即GNU的make,${makeFolder}${myMF}是makeGsm2.mak,$action是new、update、remake等。变量CUSTOMER和PROJECT分别是客户名和项目名,在构建过程中将根据此两个变量的值选定项目相关的配置文件,从而实现客户化的定制。通过给make指定ARM版的核心Makefile文件Gsm2.mak,开始了ARM版的构建过程。

    Gsm2.mak文件中包含了Option.mak这个配置用的Makefile文件,另外还包含了一些以.tmp和.bld为后缀的由perl脚本make2.pl生成的临时配置文件。这些临时配置文件主要是一些action如clean、remake等所需的变量设置,及客户化和版本号等的一些信息。Gsm2.mak控制了new、update、remake等动作的过程。具体分别如下所示。

来源:0)””>new

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年9月20日
下一篇 2013年9月20日

相关推荐