学者之家电子论坛--打造电子工程师共同致富的平台's Archiver

高茂光 发表于 2009-12-17 19:37

MTK手机软件开发教程

MTK手机软件开发教程
手机, 软件开发, 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
2.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



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



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



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



烧写程序:
工具  Flash_tool.exe 可烧写程序。
该工具的主要设置是 COM口 和目标文件位置。
Download argent 和 scatter file 用自带的就可以了,选中这两项后,会出现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à set database path
其次, 要设置模式为logging,这样才能进行下面的设置。
该设置位于  controlà modeà logging
第三,要设置好COM口。
第四, 打开连接开关,表示 Catcher.exe处于待命状态。
第五, 设置filter。这个可以过滤一些自己不需要的log。有时半天不出现log, 这时候重新选择一下filter一般就会解决问题。
Filter设置路径为  controlà set filter




Catcher.exe 使用的连接线给烧写程序用的线是同一条。
保存log:
在log区域选中想要保存的log  (可用shift+ 鼠标),鼠标右键选save as…
有时为了方便测试,会设置trace默认关闭, 需要的时候可以打开。
该设置在工程模式下。
设备à set UARTàTST Config, 设置合适的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 中增加ID
2. 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 中增加ID
2. population.c 中将ID和 string关联
3. 增加图片到解压后的包里,增加完毕,应打包。plutommi\Customer\Images\PLUTO176X220
  里面的文件夹是生成的,可以在cc上看到为private。
4. 添加进去后,要打包,如果仅添加在文件夹里面会被清除。



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




在NVRam中增加成员:
需要增加ID,指出每块大小,以及总的块数 和缺省值。
每块大小最好为偶数。
修改下面的文件:
Nvram_user_defs.h:  ID, 大小,个数
NVRAMEnum.h
Nvram_user_config.c
custom_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.      代码的编译:



有如下的编译命令:



make custom=xxx gprs new



make custom=xxx gprs update



make custom=xxx gprs remake



make custom=xxx gprs clean



这些编译命令可以做成批处理文件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目录下的所有内容,保留目录结构。
3.MTK平台软件架构


华禹工控——小高
[url]www.study-bbs.com[/url]
为华禹官方论坛,华禹将全力打造此论坛。
深圳创易电子:
[url]www.designeasy.com.cn[/url]

xiaodao123 发表于 2010-1-14 09:16

哇~~◎那么多哈1

king5188 发表于 2010-1-14 21:47

好呀。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。好呀。。。

wenqinliu007 发表于 2010-1-21 07:57

你说了这么多,我都不知道用什么软件来编写,可否更详细些?如有可能请附下载连接,谢谢

welenlee 发表于 2010-1-26 21:44

软件在哪里下载啊?

蓝色的云 发表于 2010-1-27 00:13

傅贵的 《MMI实例培训教程.pdf》 可以参考一下。。   
能找到108页,清晰版的最好, 大小不超1.5M
太大的很多都是图片转的

蓝色的云 发表于 2010-1-27 00:17

[b]回复 [url=http://www.study-bbs.com/redirect.php?goto=findpost&pid=92571&ptid=29641]4#[/url] [i]wenqinliu007[/i] [/b]


ADS
perl
VC
。。。。。

这些网上查一下MTK环境搭建就好了,重要的是有没代码

永不言败 发表于 2010-2-6 14:32

[b]回复 [url=http://www.study-bbs.com/redirect.php?goto=findpost&pid=92571&ptid=29641]4#[/url] [i]wenqinliu007[/i] [/b]


    [url]http://www.study-bbs.com/thread-27201-1-1.html[/url]

xingyangqing 发表于 2010-2-6 17:27

:handshake

手持机 发表于 2010-3-5 18:04

好呀,好呀,顶呀{:3_41:}

手持机 发表于 2010-3-5 18:05

好东西,顶起来

jadeWu 发表于 2010-3-30 15:55

好, 顶一下.

szhyk 发表于 2010-4-28 16:38

说的还是不够详细呀!

页: [1]

Powered by Discuz! Archiver 7.1  © 2001-2009 Comsenz Inc.

302 Found

302 Found


nginx/1.8.0