欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:34884279       资源大小:179.38KB        全文页数:5页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 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 newmake 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 上名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 检查和调试自己写好的应用。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 -RCUSTOMER=$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 等动作的过程。具体分别如下所示。new : cleanall cmmgen mmi_feature_check asngen codegen asnregen operator_check_lite update 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - update : cleanlog cleanbin mcddll_update codegen resgen cksysdrv remake remake : cleanlog cleanbin genverno libs $(BIN_FILE) done 上面的构建过程的几个步骤中,最重要的两个步骤是libs、$(BIN_FILE) 。libs 调用 ARM 版的编译器和连接器将各个模块目录下的C 文件编译链接为独立的库。$(BIN_FILE) 这个步骤将各个模块编译链接得到的库和mtk_lib 目录下的库一起链接起来得到一个映像文件,然后使用 ADS 的工具 fromelf 将映像文件生成以变量BIN_FILE 命名的二进制文件,该文件可以下载到硬件板上运行。libs 这个步骤如下所示。libs: cleanlib startbuildlibs $(COMPLIBLIST) libs 中真正进行编译链接的步骤是$(COMPLIBLIST) ,要生成的库由变量COMPLIBLIST列出,在ARM 版中,变量COMPLIBLIST 从变量 COMPLIST 得到。变量COMPLIST 是在Option.mak及其包含的Makefile 文件中赋值的。因有很多库需要编译链接,变量COMPLIBLIST 展开后包含多个步骤,而这些步骤都是重复不变的,因此在定义步骤$(COMPLIBLIST) 的构建过程时使用%.lib 代替。 %.lib 这个步骤先清除了之前的一些依赖关系文件,将一些变量的设置写入compbld.tmp这个临时文件中, 然后给 make 指定 Makefile文件 comp.mak ,完成库的编译和链接,如下所示。%.lib: if /I %OS% EQU WINDOWS_NT (if /I $(BM_NEW) EQU TRUE (toolsmake.exe -fmakecomp.mak -k -r -R $(strip $(CMD_ARGU) COMPONENT=$* $(strip $(COMPLOGDIR)$*.log 2&1) else (toolsmake.exe -fmakecomp.mak -r -R $(strip $(CMD_ARGU) COMPONENT=$* $(strip $(COMPLOGDIR)$*.log 2&1) ) else (if /I $(BM_NEW) EQU TRUE (toolsmake.exe -fmakecomp.mak -k -r -R $(strip $(CMD_ARGU) COMPONENT=$* $(strip $(COMPLOGDIR)$*.log) else (toolsmake.exe -fmakecomp.mak -r -R $(strip $(CMD_ARGU) COMPONENT=$* $(strip $(COMPLOGDIR)$*.log) ) 上面的命令语句中,参数-k 是指有错误也要继续编译,-r 和-R 是指没有GNU make 的默认名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 规则和变量。 COMPONENT=$* 把当前要生成的库赋给变量COMPONENT 。要注意 %.lib 匹配了所有要生成的库,但这个步骤一次只生成一个模块的库,这个步骤对所有匹配到的库都会执行一次。comp.mak 这个 Makefile 文件控制了模块的编译链接过程。在这个文件中,首先将当前模块要生成的库(由变量 COMPONENT 传入) 设置给了变量TARGLIB 。 之后从 .lis文件中得到SRC_LIST 和 CPPSRC_LIST 两个源文件列表, 设定要编译的C 文件、C+文件、汇编文件等的列表,和要链接的中间目标文件的列表。将.inc 、.def 、.pth 文件中的头文件路径、C 文件路径、编译链接参数等赋值给相应的变量。将平台相关(如6223、6225)的编译参数加上,确定使用ARM 编译器还是 thumb 编译器,是否支持ARM 指令和 thumb 指令的 interwork 模式。最后进入库的编译链接过程。库的编译链接由update_lib步骤完成,这个步骤直接依赖了$(TARGLIB) 。目标 $(TARGLIB)是由所有按照.c.obj 、.s.obj 、%.obj: %.cpp等规则编译得到的中间目标文件链接得到的。其主要过程如下所示。$(TARGLIB): . if exist $(FIXPATH)$(CUS_MTK_LIB)$(COMPONENT).lib (copy /z $(FIXPATH)$(CUS_MTK_LIB)$(COMPONENT).lib $(subst /,$(TARGLIB) & ($(LIB) -r $(TARGLIB) $(COMPOBJS_DIR)/*.obj) else ($(LIB) -create $(TARGLIB) $(COMPOBJS_DIR)/*.obj) . Option.mak是整个工程构建过程中的总控配置文件,在这个文件中还包含了_.mak和 REL_CR_MMI_.mak这两个项目相关的配置文件,用户自定义的配置文件USER_SPECIFIC.mak ,另外还包含了一些临时生成的配置文件。这些配置文件在一起设置了工程构建过程中用到的编译器、链接器, 库和二进制的工具,设置了编译链接时的参数,公共的头文件路径,设置了需要包含mtk_lib 目录中的哪些既有的库,设置了需要生成的库等一系列相关的设置。这些设置都由一些重要的变量保存,具体在下一节中讲解。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

    注意事项

    本文(2022年MTK手机软件系统的构建过程 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开