MTK过程.docx

上传人:b****4 文档编号:4818239 上传时间:2023-05-07 格式:DOCX 页数:109 大小:894.93KB
下载 相关 举报
MTK过程.docx_第1页
第1页 / 共109页
MTK过程.docx_第2页
第2页 / 共109页
MTK过程.docx_第3页
第3页 / 共109页
MTK过程.docx_第4页
第4页 / 共109页
MTK过程.docx_第5页
第5页 / 共109页
MTK过程.docx_第6页
第6页 / 共109页
MTK过程.docx_第7页
第7页 / 共109页
MTK过程.docx_第8页
第8页 / 共109页
MTK过程.docx_第9页
第9页 / 共109页
MTK过程.docx_第10页
第10页 / 共109页
MTK过程.docx_第11页
第11页 / 共109页
MTK过程.docx_第12页
第12页 / 共109页
MTK过程.docx_第13页
第13页 / 共109页
MTK过程.docx_第14页
第14页 / 共109页
MTK过程.docx_第15页
第15页 / 共109页
MTK过程.docx_第16页
第16页 / 共109页
MTK过程.docx_第17页
第17页 / 共109页
MTK过程.docx_第18页
第18页 / 共109页
MTK过程.docx_第19页
第19页 / 共109页
MTK过程.docx_第20页
第20页 / 共109页
亲,该文档总共109页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MTK过程.docx

《MTK过程.docx》由会员分享,可在线阅读,更多相关《MTK过程.docx(109页珍藏版)》请在冰点文库上搜索。

MTK过程.docx

MTK过程

一、开发环境设立

以下表述中提到的相关压缩包或安装文件到华禹ftp服务器下载,部分文件要到群共享里面下,那里是最新的。

华禹ftp服务器:

IP:

220.113.15.15,帐号为study-,密码为study-bbs0304

P1300的QQ群号:

15762255

P1300_Build_Guide.rar-------------------------来自ftp服务器,“华禹\MTK相关部分”目录下

手机开发板C语言开发视频.rar--------------来自ftp服务器,“华禹\MTK相关部分”目录下

huayu109_ads1.2.rar------------来自ftp服务器,“华禹\旋风001手机模块\1.工具类”目录下

huayu102_ADS12_Patch_Windows.rar-----------------------------------------------------------同上

huayu106_perlzip.rar---------------------------------------------------------------------------------同上

huayu108_SourceInsight3.5.rar--------------------------------------------------------------------同上

huayu101_p1300软件使用工具及开发指南.rar------------------------------------------------同上

huayu201_P1300_V1.7_Release.rar------------------------------------------------文件来自群共享

huayu203_P1300_V1.7_Release_patch.rar----------------------------------------文件来自群共享

FlashTool_v3.0844.00.rar------------------------------------------------------------文件来自群共享

huayu501_MTK界面开发说明.rar-------------------------------------------------文件来自群共享

1、开发主机要求及所需工具:

操作系统:

Windows2000,WinXP.推荐Windows2000withSP2orlater.

编译器:

ADS(ArmDeveloperSuite)v1.2[Build842]

Perl解析:

ActivePerl,推荐使用ActivePerl5.6.1版本

仿真工具:

MTKPCSimulator

跟踪工具:

Catcher_L1v3.10.01,从串口输出调试信息,只做普通UI应用的话,大致不会用到,用PC仿真工具就好了

烧录工具:

FlashTool_UIv3.1.05或FlashTool_v3.0844.00

其他:

PL2303_Driver_XP2Kv204102,这是下载线用到的USB串口驱动,以前机器上装过PL2303驱动的,建议改用这个,否则可能会有蓝屏的问题。

2、开发环境建立过程:

新建一个目录,英文的好了,否则有些工具不认识中文路径,这里以E:

\MTK_P1300为例说明,下面我用文字和图片简单说明下安装过程,更详细的安装过程可以看压缩文件“手机开发板C语言开发视频.rar”中的Flash文件“P1300_Build_Env.swf”。

1)安装ADS1.2

解压文件huayu109_ads1.2.rar到某个目录,比如说解压到“E:

\MTK_P1300”,解压完后运行“E:

\MTK_P1300\ADS1.2\Setup.exe”,一路按下一步,最后安装License时选定文件“E:

\MTK_P1300\ADS1.2\CRACK\license.dat”,然后接着一路下一步直到安装完。

安装完后删掉目录“E:

\MTK_P1300\ADS1.2\”,节省磁盘空间。

2)安装ADS补丁

运行huayu102_ADS12_Patch_Windows.rar压缩文件中的ADS_Patch_Window.exe,这是个自解压的压缩文件,选Unzip解压到上一步ADS的安装目录(缺省是C:

\ProgramFiles\ARM\ADSv1_2),解压过程中如果问到是否覆盖,全部选覆盖好了。

3)安装脚本解释器Perl

直接运行压缩包huayu106_perlzip.rar里面扩展名为msi的安装文件,缺省安装就好,一路Next,呵呵。

上述几步完成后,编译环境基本建立,此时可以开一个dos窗(开始菜单->运行->输入cmd->确定)看一下,安装正常应该能顺利执行以下命令,如下图:

注意看版本号,应该是ADS1.2[Build842],不是的话可能没打补丁,或补丁打的位置不对,请看第2步ADS补丁部分的说明并重新打一次,直到版本号对为止,哈哈。

这是perl解释器的运行画面。

注1:

上述安装过程会自动创建编译环境所需的环境变量,如果发现编译不正常了,可能是安装了其他编译工具导致冲突,这时建议查看下系统环境变量,把Perl和ADS的安装目录调到最前面,同时从path中去掉可能会产生冲突的编译工具链的路径(例如winavr),如下图所示(我是安装到D盘滴,缺省是C盘,不过我C盘几乎被我塞满了):

如果嫌改path麻烦(因为要用到其他编译工具链的时候还得改回去),还有一种办法,就是改make.bat批处理,具体见注4中相关说明。

注2:

如果安装ADS时,改变了默认安装路径,需要修改源码中的设置,源码目录树解压过程见模拟器编译环节相关介绍。

make\Option.mak

----------------------------------

ifeq($(strip$(COMPILER)),ADS)

DIR_ARM=c:

\progra~1\arm\adsv1_2#修改这里

DIR_ARM:

=$(strip$(DIR_ARM))

DIR_TOOL=$(DIR_ARM)\bin

DIR_ARMLIB=$(DIR_ARM)\lib

DIR_ARMINC=$(DIR_ARM)\include

endif

------------------------------------------------

比如改装到D盘了,这里把红色部分“c”改成“d”就好了

4)代码编辑环境

运行压缩文件huayu108_SourceInsight3.5.rar中的安装文件安装即可。

至于编辑器,这个看个人喜好了,不过SourceInside看代码蛮方便的。

5)PC机模拟器

模拟器MTKPCSimulator是用来在PC上仿真调试用的,要安装VC6SP6(同时要安装Uuicode静态和动态库,没有装Unicode库的可以用“huayu103_MTK模拟器DLL补丁.zip”中的库,拷到系统目录“%windir%\system32”下即可)。

我机器上的VC是有装Unicode库的,没装过Unicode库的如果在模拟器编译或运行中出现问题,建议重装下VC6,安装时勾选Unicode库,并打上相关补丁到SP6。

模拟器能模拟真机的大部分行为,这样能给调试带来很大便利,不需要每次改动都要烧录。

模拟器要从源码编译,解压压缩包“huayu201_P1300_V1.7_Release.rar”里面的文件“HUAYU_P1300_V1.7_Release.rar”到目录“E:

\MTK_P1300”,此时会出现目录“E:

\MTK_P1300\P1300_V1.7_Release”,这就是P1300的代码目录树了;接着打上最新的补丁,解压压缩包“huayu203_P1300_V1.7_Release_patch.rar”里面的压缩文件“HUAYU_P1300_V1.7_Release_patch.rar”到目录

“E:

\MTK_P1300\P1300_V1.7_Release”,解压时选择全覆盖以替换被修改过的文件,打补丁之前对目录树里面的文件进行修改过的,需要手动再加上去。

编译PC仿真器之前需要先把刚才上面得到的目录树build一次,开一个dos窗,盘符和目录转到代码目录树对应的盘符和目录,例如:

E:

cdE:

\MTK_P1300\P1300_V1.7_Release\

makenew

注3:

第一次make的时候要用“makenew”,makenew的时间比较长(慢的机器搞不好要2小时以上),编译过程中间会出现一些文件找不到的信息,只要编译过程没意外终止,那些信息可以忽略。

编译日志文件位置:

build\NEOTEL25_06B\log\,要查看编译过程有啥问题就看这个目录下的文件了;生成的bin文件位置:

build\NEOTEL25_06B\*.bin,下载烧录就是烧bin文件。

这里顺带介绍下build的命令格式:

makenew清除后重新编译整个项目

makeresgen重新生成资源

makeremake重新编译链接项目

makeviewlogxxx查看模块xxx的编译日志

make查看可以用make选项帮助信息

注4:

如果机器上装了其他gcc编译工具链(比如winavr之类)的话可能要手动改下Path,否则编译会出错,修改Path的方法见注1,也可以修改批处理文件“E:

\MTK_P1300\P1300_V1.7_Release\make.bat”,在“perlmake2.pl%*”之前加上下面两句:

setPERL5LIB=D:

\perl\lib

setPATH=D:

\perl\bin;d:

\progra~1\arm\adsv1_2\bin;E:

\MTK_P1300\P1300_V1.7_Release\tools;c:

\windows\system32;c:

\windows;c:

\windows\system

注意,上面的路径是我机器上的,不是缺省安装路径,要根据自己的实际安装路径做修改。

下面开始编译PC仿真器了,用VC6打开工程文件“E:

\MTK_P1300\P1300_V1.7_Release\plutommi\mmi\PC_Simulator.dsw”,然后开始编译,编译时间比较长,具体看机器配置了,这时又可以干点别的啥了,呵呵。

因为仿真器工程涉及文件较多,编译费时,建议编译过程中电脑上少开窗口,特别是网络类的,如QQ,有时会发现开QQ后,编译过程中VC会挂死,呵呵。

有可能是开QQ后防火墙过滤网络数据占用较多系统资源,如果发现VC编译特别慢或干脆挂死,可以重启动一下电脑,只开必要的窗口,然后开始编译。

如果编译过程中发现怪异的问题,如:

incomingstringiddef.h(120):

errorC2059:

syntaxerror:

'constant'或者

errorC2065:

'STR_CM_REDIAL':

undeclaredidentifier之类

这个时侯你可能需要看一下你VC相关路径的设置顺序,如下图:

把VC原本的头文件路径调整到最前面,我刚开始编译的时候SDK的头文件在前面,编译总是通不过,改一下就好了,库也一样都调整下比较保险,呵呵。

6)Tracer跟踪工具

解压文件P1300_Build_Guide.rar到E:

\MTK_P1300,然后在文件管理器进入目录“E:

\MTK_P1300\P1300_Build_Guide”,接着解压Catcher_L1_v3.10.01.zip到当前目录下的Catcher_L1_v3.10.01子目录,进入子目录Catcher_L1_v3.10.01,发送一个Catcher.exe的快捷方式到桌面。

在需要用到TRACE的时候,在代码中使用函数

voidkal_prompt_trace(module_typemod_id,constkal_char*fmt,...);打印需要查看的信息,使用Catcher跟踪查看。

这个有点类似Linux的KernelDebug工具,具体使用方法见文档《cather使用手册.doc》,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南.rar”里面找到。

7)烧录工具

解压文件“E:

\MTK_P1300\P1300_Build_Guide\FlashTool_UI_exe_v3.1.05.zip”到当前目录,然后进入目录“E:

\MTK_P1300\P1300_Build_Guide\FlashTool_v3.1.05”,发送一个Flash_tool.exe的快捷方式到桌面好了。

还有个下载工具FlashTool_v3.0844.00.rar,也是不用安装,解压后直接用的,据说烧录速度比上面那个快。

具体使用方法见文档《flash_tool_MT平台使用教程.doc》,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南.rar”里面找到。

8)USB串口下载线驱动

运行压缩文件

“E:

\MTK_P1300\P1300_Build_Guide\PL2303_Driver_XP2K_v204102.zip”里面的可执行文件进行安装,一路下一步,这里不再赘述。

二、HelloWorld

上面一节我们建立好了开发环境,现在是时候实战一把了,在进行实质性的项目开发之前,我们先来了解下P1300上写程序的一般性做法。

从“HelloWorld”开始吧,有句笑话讲:

“会编程就是会HelloWorld,编程高手就是会写很多个HelloWorld”,虽然是句笑话,但是细想也是有道理的,麻雀虽小五脏俱全嘛,掌握了框架,剩下的就无非是些编程技巧的问题了。

这和建房子一个道理,地基打的深不深,框架建的是否合理,决定房屋总体质量好不好,其他就是装修的功夫了,当然还有水电线路的铺设,这涉及到习惯和技巧了,设计不好会漏水漏电,哈哈。

扯远了,下面开始HelloWorld。

下面为描述上的方便,我们将HelloWorld称为一个模块。

首先建立新的模块目录,之后把模块相关文件都放到这个目录下统一进行管理,新的模块一般放到plutommi\MMI下面,这里我们新建一个目录“HelloWorld”,然后在模块目录“HelloWorld”下再建三个子目录:

“Inc”、“Src”和“Res”,分别用来存放模块的头文件、源文件和资源文件,目录结构如下图所示:

接着我们在Inc下创建几个头文件:

HelloWorldGprot.h,HelloWorldProt.h,HelloWorldTypes.h,HelloWorldDefs.h,再在Src下创建一个源文件:

HelloWorld.c,关于文件名和函数名等的命名标准每个公司及个人各有不同,统一就好,否则在进行大的项目开发时彼此协同会遇到问题,有时候弄不好光这些问题就能折腾你半天甚至数日或数月,呵呵。

上面几个文件的作用我大致讲下:

HelloWorldGprot.h模块对外接口,供模块外部调用的函数原型在此申明,模块内部接口就不要放这里了

HelloWorldProt.h模块内部接口,供模块内部调用的函数原型在此申明

HelloWorldTypes.h本模块用到的一些常量、自定义数据类型、结构的定义

HelloWorldDefs.h本模块用到的资源ID定义

HelloWorld.c模块功能函数的实现部分

头文件HelloWorldGprot.h的内容大致如下:

/*************************************************************************/

#ifndef__HELLOWORLD_GPROT_H__

#define__HELLOWORLD_GPROT_H__

#include"PixtelDataTypes.h"

#include"HelloWorldTypes.h"

externvoidmmi_HelloWorld_entry(void);/*模块入口,理解成dos程序的main好了*/

#endif/*__HELLOWORLD_GPROT_H__*/

/*************************************************************************/

头文件HelloWorldProt.h的内容的大致如下:

/*************************************************************************/

#ifndef__HELLOWORLD_PROT_H__

#define__HELLOWORLD_PROT_H__

#include"HelloWorldGprot.h"

externvoidmmi_HelloWorld_entry(void);/*本模块主界面入口例程*/

externvoidmmi_HelloWorld_exit(void);/*本模块主界面退出例程*/

#endif/*__HELLOWORLD_PROT_H__*/

/*************************************************************************/

其他几个文件的内容因模块功能而异,这里先略过,后面再讲。

紧接着,我们要修改的相关系统文件,使这个模块成为整个项目的一部分,需要修改的系统文件如下:

make\plutommi\plutommi.inc所有mmi部分的头文件所在目录的相对路径列表

make\plutommi\plutommi.pth所有mmi部分的源文件所在目录的相对路径列表

make\plutommi\plutommi.lis所有mmi部分的源文件(相对路径)列表

在上述3个文件里面分别加上我们模块的对应内容,就现在讲的HelloWorld而言,所加内容如下:

make\plutommi\plutommi.inc文件追加一行“plutommi\mmi\HelloWorld\Inc”

make\plutommi\plutommi.pth文件追加一行“plutommi\mmi\HelloWorld\Src”

make\plutommi\plutommi.lis文件追加一行“plutommi\mmi\HelloWorld\Src\HelloWorld.c”

再接着,我们需要增加一个开关,以决定这个模块是否成为最终发布版本的一部分,这实际上是一个编译开关,需要修改系统文件及相关的模块源文件,需要修改的系统文件包括:

plutommi\Customer\CustResource\PLUTO_MMI\MMI_featuresPLUTO.h,这里我们用名字为“__MMI_HELLOWORLD_ENABLED__”这个开关好了,在这个文件里面追加一行:

#define__MMI_HELLOWORLD_ENABLED__,同时在相关源文件里面用:

#ifdef__MMI_HELLOWORLD_ENABLED__

#endif

来框住相关代码行就OK了,当不打算将这个模块发布的时候,注释掉“#define__MMI_HELLOWORLD_ENABLED__”这一句重新make一次就好了。

下面讲具体实现的部分,为了简化描述,我们暂时先将我们的模块入口挂接到主菜单入口处(后面讲到资源的部分可将入口移到某个新建的子菜单下),修改下文件“plutommi\mmi\mainmenu\mainmenusrc\MainMenu.c”中的goto_main_menu函数,如下所示红色字体部分:

voidgoto_main_menu(void)

{

#ifdef__MMI_HELLOWORLD_ENABLED__

mmi_HelloWorld_entry();

return;

#else

…//此处为之前goto_main_menu的代码

#endif

}

同时我们需要在文件MainMenu.c中包含头文件HelloWorldGprot.h,所以再在这个文件的头文件包含代码块(通常是文件的顶部区域)追加这一句:

#include"HelloWorldGprot.h"。

下面是HelloWorld.c的内容:

/*************************************************************************/

#include"stdC.h"

#include"MMI_Features.h"/*编译开关会出现在这个由makeupdate生成的文件里面*/

#include"L4Dr.h"

#include"L4Dr1.h"

#include"AllAppGprot.h"

#include"FrameworkStruct.h"

#include"GlobalConstants.h"

#include"EventsGprot.h"

#include"mmiappfnptrs.h"

#include"HistoryGprot.h"

#include"HelloWorldProt.h"

#include"HelloWorldTypes.h"

#include"HelloWorldDefs.h"

#include"MainMenuDef.h"

#include"wgui_categories.h"

#include"Unicodexdcl.h"

/*模块入口*/

voidmmi_HelloWorld_entry(void)

{

#ifdef__MMI_HELLOWORLD_ENABLED__

/*强制退出当前屏幕,之后进入到我们的模块了*/

/*上电缺省是idle屏幕,现进入MAIN_MENU_SCREENID屏*/

/*注意看第二个参数,这个是当我们模块被强制退出时执行的一些操作*/

EntryNewScreen(MAIN_MENU_SCREENID,mmi_HelloWorld_exit,NULL,NULL);

/*关掉屏幕顶部的状态条,我们要用整个屏幕*/

entry_full_screen();

/*擦除当前背景*/

clear_screen();

/*移动文本输出光标*/

gui_move_text_cursor(50,100);

/*设置字体颜色*/

gui_set_text_color(UI_COLOR_RED);

/*输出文本到显示缓冲,注意是Unicode编码*/

gui_print_text(L"Hello,World");

/*刷新屏幕显示,MMI用的是双缓冲绘图方式,而且需要显式刷新*/

gui_BLT_double_buffer(0,0,UI_device_wi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2