配色: 字号:
MTK软件编译过程
2012-08-06 | 阅:  转:  |  分享 
  
MTK软件编译过程

====================

编译工具和辅助工具:ADS1.2ADS12_update_842.exeMSYS-1.0.10.exeMinGW-3.1.0-1.exeImageMagick-6.2.5-5-Q16-windows-dll.exe7z313.exe

开始编译:切换到项目根目录,然后在命令行下面执行命令:makecustom=projgprsnew其中,命令可以为clean,????update,????remake

目标文件:生成的目标文件为.bin文件,位于MTK\build\proj目录下面,build目录为生成的一个目录。

Log文件:Log文件同.bin文件一样,也是位于build目录下,如果编译出错,可以在命令行中看到出错的模块,然后到build目录下找对应的log文件。

仿真环境:工程文件PixtelMMI.dsw位于目录????MTK\plutommi\mmi下面,由此可进入仿真环境。

烧写程序:工具??Flash_tool.exe可烧写程序。该工具的主要设置是COM口和目标文件位置。Downloadargent和scatterfile用自带的就可以了,选中这两项后,会出现ROM的选择项,点击后可选择.bin文件。如下图:

设置好上面的参数后,连接上手机,将手机断电,然后按开机键就可以烧写程序了。

Trace工具在手机上往往要做一些trace,这就要用到trace工具---Catcher.exe。手机上打trace接口为kal_prompt_trace,如同agere平台的GSMprinf.使用Catcher.exe,要先要设置DataBase,这个文件是在编译的时候生成的,是个没有扩展名的二进制文件,该文件位于\MTK\tst\database_classb,例如,BPLGU..。在Catcher.exe中,设置DataBase的方式是configàsetdatabasepath其次,要设置模式为logging,这样才能进行下面的设置。该设置位于??controlàmodeàlogging第三,要设置好COM口。第四,打开连接开关,表示Catcher.exe处于待命状态。第五,设置filter。这个可以过滤一些自己不需要的log。有时半天不出现log,这时候重新选择一下filter一般就会解决问题。Filter设置路径为??controlàsetfilter

Catcher.exe使用的连接线给烧写程序用的线是同一条。保存log:在log区域选中想要保存的log??(可用shift+鼠标),鼠标右键选saveas…有时为了方便测试,会设置trace默认关闭,需要的时候可以打开。该设置在工程模式下。设备àsetUARTàTSTConfig,设置合适的UART口。比如,UART1是可以trace的。

编译出错:有时编译会出现莫名其妙的错误,比如一刚刚可以编译通过,现在却不行,.

以上为项目开发的基本环境和基本过程接下来的内容,则是具体的开发细节―――――――――――――――――――――――――――――添加文件:开发过程中,少不了加减文件,删除文件实际上是添加文件的相反过程,因此略过。MTK设置了很多lst和pth文件供用户添加文件,这些都在make文件夹下。用户可以自己添加模块,也可利用原有的lst和pth文件添加。以下以添加在MTK\make\plutommi为例。添加头文件路径:plutommi.inc添加本模块路径:plutommi.pth添加源文件路径:plutommi.lis添加完毕,这些文件就可参与编译了。

添加开关:开关真是个好东西。依靠它,可以将没有价值的功能瞬间屏蔽,又可以将我们需要但又搁置的功能瞬间启用。能者上,不能者下,多么类似于社会法则。添加开关在make文件夹下面的.mak文件里面。注意事项:有人喜欢模仿MTK原做法,在.mak文件里面使用一个开关管住另外一个开关。那么两个开关不要同名,否则开关起不了关闭的作用。

添加string资源:1.GlobalDefs.h中增加ID2.population.c中将ID和string关联3.plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中增加ID和各种语言的文本有了以上3个步骤,即可使用该文本资源了。

编译后,在plutommi\Customer\CustResource下面会生成新的CustStrMap.c和CustStrRes.c这两个文件中就包含了新增的string资源

添加图片:1.GlobalDefs.h中增加ID2.population.c中将ID和string关联3.增加图片到解压后的包里,增加完毕,应打包。plutommi\Customer\Images\PLUTO176X220??里面的文件夹是生成的,可以在cc上看到为private。4.添加进去后,要打包,如果仅添加在文件夹里面会被清除。

如果没有找到图片文件,手机显示的时候是一个红色的添加图片时,注意路径用4杠

在NVRam中增加成员:需要增加ID,指出每块大小,以及总的块数和缺省值。每块大小最好为偶数。修改下面的文件:Nvram_user_defs.h:??ID,大小,个数NVRAMEnum.hNvram_user_config.ccustom_nvram_editor_data_item.h?

是在Dos环境下编译,可以做成一个批处理文件,更方便。

MTK编译分资源的编译和代码的编译:

1.??????资源的编译:

1).需要编译资源的情况:

在如下的修改情况下,需要重编译资源:

????????a.??修改了..plutommi\Customer\CustResource\PLUTO_MMI\目录下的文件如字库文件

????(FontRes.c、L_.h文件)、MMI配置文件(MMI_featuresPLUTO.h)、字符串资源文件

????(Ref_list.txt)等;

b.??修改了..plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的文件,这个目

????????录下的文件都是Res_.文件,是各个AP或模块的资源配置文件,包含菜单、图片、

????????字符串资源的配置;

??????注意:Cust.文件是资源编译生成的,不能手动修改。

??????????????2).编译方法:

进入..\plutommi\Customer目录,执行remakeResource.bat批处理文件。

编译成功会生成一些Cust.文件在\plutommi\Customer\CustResource目录下,编译代码时再编译这些文件;

编译失败到build目录下查看log文件àres_gen.txt,可看到出错信息。

??????????????3).当我们改变了资源,想在PC模拟上看到修改效果时,也需要先执行如上的资源编译命令,

再在VC环境下build一下资源,就可以看到效果了。

2.??????代码的编译:

有如下的编译命令:

makecustom=xxxgprsnew

makecustom=xxxgprsupdate

makecustom=xxxgprsremake

makecustom=xxxgprsclean

这些编译命令可以做成批处理文件build.bat,我们输入相应的选项就可。

编译成功后,在build目录下生成所有的.obj,编译信息log文件、下载.bin文件等;

编译失败时,到build目录下查看相应的log文件,可看到出错信息。

几个关键字解释如下:

1).xxx,Project名,对应make目录下的xxx_GPRS.mak文件;

2)最后一个关键字:

a.??????new:

不管资源、代码是否有改变,全部重编;

b.??????update:

扫描资源、代码的改变,有改变的重编,无改变的不编;

c.??????remake:

不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编;

d.??????clean:

清除build目录下的所有内容,保留目录结构。



献花(0)
+1
(本文系小云蔡首藏)