分类:
2009-11-11 19:32:17
最近公司的项目差不多都做完了,趁新项目还没来的时候学学东西。从朋友那里搞来一套mtk的源代码学学mtk的开发。选择mtk是因为,它跟我的工作所用的平台相似,学起来方便一点,另外一点是它可以在PC上跑,不用自己去买硬件,成本不高。呵呵,从朋友那里搞来的源代码,不用硬件,成本就只有时间了。
我的那个朋友还真绝,丢给我一个源代码就什么都不管了。我问他一些问题一律不答,还美其名曰:“你不是学习么,自己去找答案呀,什么都我告诉你,你还学什么呀?!!”气得我,不过也是,学东西还得自己动手!
搞开发当然是要先建开发环境了。在网上找了一些资料,整理一下,也算搞定了。首先当然是找到要用的软件了。
一.安装编译工具
1. ADS1.2和ADS1.2_update_848.exe,mtk是arm7核的,所以用ads编译当然会比较好一点,当然应该是可以用其他编译器的,但不想去试,太麻烦了。到网上下了这两个软件,装上。注意:最好是按默认目录安装。不然后面还得有事做,按默认目录装可以省事不少!
2. 安装perl,mtk编译脚本是用perl来完成的。
3. 到了这里,很多时候应该是可以了。因为很多release版本的源代码已经有其它第三方工具了。你先检查一下有没有下面的工具,如果没有就装。MSYS 版本:1.0.10,MinGW 版本:3.1.0,Gcc-core-3.3.1,Gcc-g++-3.3.1,ImageMagick 版本:6.3.6 Q16,7-zip 版本:3.13。注意:版本最好是要求的版本,这些是已经通过测试的不会有问题。
4. 朋友可能是想考验我,把一个工具删除了,害我一开始编译不了。这个工具是convert.exe提示找不到这个文件。后来装了,ImageMagick后,把convert.exe放在\plutommi\Customer\ResGenerator里面就行了。
二.测试开发环境
1. 进入DOS命令提示行里
2. 进入你源代码目录下的tools目录
3. 运行chk_ev.exe,如果你看到“Build environment is ready!”的提示说明你的编译环境好了
三.开始编译
1.在编译手机程序,在源代码的根目录里输入make –h可以看到编译帮助下面是我这里的提示:
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)
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
也就是说只要输入make XXX gprs new之类的命令就可以编译了,这里XXXX指你的项目名。
2.模拟器的编译。
模拟器的编译是用VC来编译的,编译好后会生成一个exe的文件,你可以直接运行它来模拟手机的运行了。用VC6打开,\plutommi\mmi目录下的pixtelmmi.dsw然后编译。注意:两个项目都要编译
四.运行
我没有硬件运行它,所以只在pc上模拟运行,下面是运行的结果图: