找回密码
 注册
搜索
楼主: winaughty

[资料] MTK软件编译说明

[复制链接]
发表于 2008-11-8 13:55:58 | 显示全部楼层
kuku 苦苦
点评回复

使用道具 举报

发表于 2008-11-23 21:23:30 | 显示全部楼层
[em07]
点评回复

使用道具 举报

发表于 2008-11-24 08:56:56 | 显示全部楼层
楼主很缺钱[em07]
点评回复

使用道具 举报

发表于 2008-11-24 15:44:35 | 显示全部楼层
谢谢,不知道是不是适合我这样的初学者
点评回复

使用道具 举报

发表于 2008-12-12 10:46:17 | 显示全部楼层
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}是tools\\make.exe,即GNU的make,${makeFolder}${myMF}是make\\Gsm2.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
  
  
  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 \\
  (tools\\make.exe -fmake\\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* >$(strip $(COMPLOGDIR))\\$*.log 2>&1)
  \\
  else \\
  (tools\\make.exe -fmake\\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* >$(strip $(COMPLOGDIR))\\$*.log 2>&1) \\
  ) \\
  else \\
  (if /I $(BM_NEW) EQU TRUE \\
  (tools\\make.exe -fmake\\comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* >$(strip $(COMPLOGDIR))\\$*.log) \\
  else \\
  (tools\\make.exe -fmake\\comp.mak -r -R $(strip $(CMD_ARGU)) COMPONENT=$* >$(strip $(COMPLOGDIR))\\$*.log) \\
  )
  
  
  上面的命令语句中,参数-k是指有错误也要继续编译,-r和-R是指没有GNU make的默认规则和变量。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目录中的哪些既有的库,设置了需要生成的库等一系列相关的设置。

如果看不懂,请阅读相关的arm的编译工程

本文来自:我爱研发网(52RD.com) 详细出处:http://www.52rd.com/bbs/Detail_RD.BBS_136928_118_1_1.html
点评回复

使用道具 举报

发表于 2009-2-6 16:10:22 | 显示全部楼层

MTK软件编译说明.doc 免费了

免费了,鄙视有rd币还卖钱!
【文件名】:0926@52RD_MTK软件编译说明.doc
【格 式】:doc
【大 小】:36K
【简 介】:
【目 录】:


点评回复

使用道具 举报

发表于 2009-10-10 01:12:19 | 显示全部楼层
【文件名】:091010@52RD_MTK软件编译说明.doc
【格 式】:doc
【大 小】:36K
【简 介】:
【目 录】:



MTK软件编译
====================
编译工具和辅助工具:
ADS1.2
ADS12_update_842.exe
MSYS-1.0.10.exe
MinGW-3.1.0-1.exe
ImageMagick-6.2.5-5-Q16-windows-dll.exe
7z313.exe
开始编译:
切换到项目根目录,然后在命令行下面执行命令:
make custom=proj gprs new
其中,命令可以为 clean,     update,    remake
点评回复

使用道具 举报

发表于 2009-10-20 15:25:27 | 显示全部楼层
[em13][em13][em13][em13][em13][em13]
点评回复

使用道具 举报

发表于 2009-10-20 15:27:41 | 显示全部楼层
[em13][em13][em13][em13][em13][em13]
点评回复

使用道具 举报

发表于 2009-11-6 01:49:31 | 显示全部楼层
thanks!!!!!!!!!!!!!!
点评回复

使用道具 举报

发表于 2010-1-5 10:37:36 | 显示全部楼层
妈的,纯骗钱的,强烈要求封杀!!
点评回复

使用道具 举报

发表于 2010-1-21 12:52:35 | 显示全部楼层
支持免费
点评回复

使用道具 举报

发表于 2010-2-3 17:40:47 | 显示全部楼层
这个资料物超所值了
本文来自:我爱研发网(52RD.com) 详细出处:http://www.52rd.com/bbs/Detail_RD.BBS_148621_118_1_1.html
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-24 10:58 , Processed in 0.047575 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表