MTK开发之软件编译学习教程

移动开发
MTK开发之软件编译学习教程是本文要介绍的内容,主要是来了解MTK开发中如何来实现软件的编译,具体内容来看本文详解。

MTK开发之软件编译学习教程是本文要介绍的内容,主要是来了解MTK开发中如何来实现软件的编译,具体内容来看本文详解。

打开dos编辑窗口(开始->运行->cmd),找到工程代码所在根目录,如/opt/MTK6217 输入编译批处理命令:

格式:

  1. make[custom="projectName"]"project" "action"["modules"]  
  2. Example:  make custom=mtk6217  gprs  new 

给个MTK的make方法

后面的modules是nucleus之类的,可以不用写,中间的除了mtk6217工程名外可以照写,mtk6217工程名可以在你的源

代码的make目录下有个工程文件名,比如我的例子就叫mtk6217_gprs.mak,你将你的替换就可以了,另外,除了上面的仁兄跟你说的ADS1.2以上  perl也要5.**,我用的是ActivePerl-5[1].6.1.631的,你查找下载一下再用 ARMAR 打包成静态 LIB

MTK软件编译

编译工具和辅助工具:

  1. ADS1.2  
  2. ADS12_update_842.exe  
  3. MSYS-1.0.10.exe  
  4. MinGW-3.1.0-1.exe  
  5. ImageMagick-6.2.5-5-Q16-windows-dll.exe  
  6. 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 为例。

添加头文件路径:

  1. plutommi.inc 

添加本模块路径:

  1. plutommi.pth 

添加源文件路径:

pl

  1. utommi.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. <!--[if !supportLineBreakNewLine]--> 
  2. <!--[endif]--> 

添加图片:

1、GlobalDefs.h 中增加ID

2、population.c 中将ID和 string关联

3、增加图片到解压后的包里,增加完毕,应打包。plutommi//Customer//Images//PLUTO176X220里面的文件夹是生成的,可以在cc上看到为private。

4、添加进去后,要打包,如果仅添加在文件夹里面会被清除。如果没有找到图片文件,手机显示的时候是一个红色的*添加图片时,注意路径用4杠

在NVRam中增加成员:

需要增加ID,指出每块大小,以及总的块数 和缺省值。

每块大小最好为偶数。

修改下面的文件:

  1. Nvram_user_defs.h:  ID, 大小,个数  
  2. NVRAMEnum.h  
  3. Nvram_user_config.c  
  4. 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、代码的编译:

有如下的编译命令:

  1. make custom=xxx gprs new  
  2. make custom=xxx gprs update  
  3. make custom=xxx gprs remake  
  4. 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目录下的所有内容,保留目录结构。

小结:MTK开发之软件编译学习教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-08-31 10:20:26

MTK驱动开发

2011-08-30 16:02:10

MTK开发环境

2011-08-30 18:01:20

2011-09-13 15:26:25

MTK环境搭建

2011-08-30 16:43:46

MTK开发菜单

2011-09-06 13:31:10

MTK平台Scatter文件

2011-08-31 10:01:44

MTK开发环境

2011-08-31 10:37:06

MTK开发入门

2011-08-30 16:32:41

MTK开发环境

2011-08-31 10:51:39

MTKAndroid 开发

2011-09-05 17:07:45

MTK手机软件

2011-09-06 09:14:27

MTK平台软件

2011-08-31 10:12:26

MTK手机平台

2011-09-06 10:10:12

MTK系统Android系统

2022-07-11 10:45:37

插桩性能优化打包

2011-08-30 16:22:00

MTK开发环境

2011-08-31 10:26:38

MTK驱动开发

2011-09-06 13:58:28

MTK系统

2011-09-07 13:00:36

2011-09-06 13:19:04

MTK手机软件系统
点赞
收藏

51CTO技术栈公众号