2022年MTK开发心得 .pdf
《2022年MTK开发心得 .pdf》由会员分享,可在线阅读,更多相关《2022年MTK开发心得 .pdf(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MTK开 发 心 得-网友 Henry 原创一、开发环境设立以下表述中提到的相关压缩包或安装文件到华禹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. 工
2、具类”目录下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文件来自群共享1、开发主机要求及所需工具:操作系统: Windows 2000, WinXP. 推荐 Windows 2000 with
3、SP2 or later. 编 译 器:ADS (Arm Developer Suite) v1.2 Build 842Perl 解析: ActivePerl, 推荐使用 ActivePerl 5.6.1版本名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 41 页 - - - - - - - - - 仿真工具: MTK PC Simulator跟踪工具: Catcher_L1 v3.10.01,从串口输出调试信息,只做普通UI 应用的话,大致不会用到,用 PC仿真工具就好
4、了烧录工具: FlashTool_UI v3.1.05 或 FlashTool_v3.0844.00 其他:PL2303_Driver_XP2K v204102,这是下载线用到的USB串口驱动, 以前机器上装过 PL2303驱动的就不必再装了?2、开发环境建立过程:新建一个目录, 英文的好了, 否则有些工具不认识中文路径,这里以 E:MTK_P1300为例说明,下面我用文字和图片简单说明下安装过程,更详细的安装过程可以看压缩文件“手机开发板 C语言开发视频 .rar ”中的 Flash 文件“ P1300_Build_Env.swf ”。1)安装 ADS1.2 解压文件 huayu109_ad
5、s1.2.rar到某个目录,比如说解压到“E:MTK_P1300 ”,解压完后运行“E:MTK_P1300ADS1.2Setup.exe ”,一路按下一步,最后安装License 时选定文件“E:MTK_P1300ADS1.2CRACK license.dat”,然后接着一路下一步直到安装完。安装完后删掉目录“”,节省磁盘空间。2)安装 ADS 补丁运行 huayu102_ADS12_Patch_Windows.rar 压缩文件中的 ADS_Patch_Window.exe ,这是个自解压的压缩文件,选Unzip 解压到上一步 ADS的安装目录 ( 缺省是 C:Program FilesARM
6、ADSv1_2) ,解压过程中如果问到是否覆盖,全部选覆盖好了。3)安装脚本解释器 Perl 直接运行压缩包huayu106_perlzip.rar里面扩展名为 msi 的安装文件,缺省安装就好,一路Next,呵呵。上述几步完成后,编译环境基本建立,此时可以开一个dos 窗( 开始菜单 -运行 -输入 cmd-确定) 看一下,安装正常应该能顺利执行以下命令,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 41 页 - - - - - - - - - 注意看版本号,
7、应该是ADS1.2 Build 842,不是的话可能没打补丁,或补丁打的位置不对,请看第 2 步 ADS 补丁部分的说明并重新打一次,直到版本号对为止,哈哈。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 41 页 - - - - - - - - - 这是 perl 解释器的运行画面。注 1:上述安装过程会自动创建编译环境所需的环境变量,如果发现编译不正常了,可能是安装了其他编译工具导致冲突,这时建议查看下系统环境变量,把Perl 和 ADS 的安装目录调到最前面, 同时
8、从 path 中去掉可能会产生冲突的编译工具链的路径(例如 winavr),如下图所示(我是安装到 D 盘滴,缺省是 C 盘,不过我 C 盘几乎被我塞满了 ):如果嫌改 path麻烦(因为要用到其他编译工具链的时候还得改回去),还有一种办法,就是改 make.bat批处理,具体见 注 4 中相关说明。注 2: 如果安装 ADS 时,改变了默认安装路径,需要修改源码中的设置,源码目录树解压过程见 模拟器编译环节相关介绍 。makeOption.mak-ifeq ($(strip $(COMPILER),ADS) DIR_ARM = c:progra1armadsv1_2 # 修改这里DIR_AR
9、M := $(strip $(DIR_ARM)DIR_TOOL = $(DIR_ARM)binDIR_ARMLIB = $(DIR_ARM)libDIR_ARMINC = $(DIR_ARM)includeendif-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 41 页 - - - - - - - - - 比如改装到 D 盘了,这里把红色部分“ c”改成“ d”就好了4)代码编辑环境运行压缩文件 huayu108_Source Insight3.5.rar中的安装文件
10、安装即可。 至于编辑器, 这个看个人喜好了,不过Source Inside看代码蛮方便的。5)PC 机模拟器模拟器 MTK PC Simulator 是用来在 PC 上仿真调试用的,要安装 VC6 SP6(同时要安装Uuicode 静态和动态库,没有装 Unicode库的可以用“huayu103_MTK 模拟器 DLL 补丁.zip”中的库,拷到系统目录“ %windir%system32”下即可 )。我机器上的 VC 是有装 Unicode库的,没装过 Unicode库的如果在模拟器编译或运行中出现问题,建议重装下VC6,安装时勾选 Unicode 库,并打上相关补丁到SP6。模拟器能模拟真
11、机的大部分行为,这样能给调试带来很大便利,不需要每次改动都要烧录。模拟器要从源码编译,解压压缩包“huayu201_P1300_V1.7_Release.rar ”里面的文件“HUAYU_P1300_V1.7_Release.rar”到目录“ E:MTK_P1300”,此时会出现目录“E:MTK_P1300P1300_V1.7_Release ”,这就是 P1300的代码目录树了;接着打上最新的补丁,解压压缩包“ huayu203_P1300_V1.7_Release_patch.rar”里面的压缩文件“HUAYU_P1300_V1.7_Release_patch.rar ”到目录“E:MTK
12、_P1300P1300_V1.7_Release ”,解压时选择全覆盖以替换被修改过的文件,打补丁之前对目录树里面的文件进行修改过的,需要手动再加上去。编译 PC仿真器之前需要先把刚才上面得到的目录树build 一次,开一个 dos窗,盘符和目录转到代码目录树对应的盘符和目录,例如:E:make new注 3:第一次 make的时候要用“ make new”,make new的时间比较长 (慢的机器搞不好要 2 小时以上 ),编译过程中间会出现一些文件找不到的信息,只要编译过程没意外终止,那些信息可以忽略。编译日志文件位置,要查看编译过程有啥问题就看这个目录下的文件了;生成的 bin 文件位置
13、 : buildNEOTEL25_06B*.bin ,下载烧录就是烧 bin 文件。这里顺带介绍下 build 的命令格式:make new 清除后重新编译整个项目make resgen 重新生成资源make remake 重新编译链接项目make viewlog xxx 查看模块 xxx 的编译日志make 查看可以用 make选项帮助信息注 4:如果机器上装了其他gcc 编译工具链 (比如 winavr 之类)的话可能要手动改下Path,否则编译会出错,修改Path的方法见 注 1,也可以修改批处理文件“E:MTK_P1300P1300_V1.7_Releasemake.bat ”,在“
14、perl make2.pl %*”之前加上下面两句:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 41 页 - - - - - - - - - set PERL5LIB=D:perllibset windowssystem32;c:windows;c:windowssystem注意,上面的路径是我机器上的,不是缺省安装路径,要根据自己的实际安装路径做修改。下面开始编译 PC仿真器了,用 VC6 打开工程文件“E:MTK_P1300P1300_V1.7_Releasepl
15、utommimmi PC_Simulator.dsw”,然后开始编译,编译时间比较长,具体看机器配置了,这时又可以干点别的啥了,呵呵。因为仿真器工程涉及文件较多,编译费时,建议编译过程中电脑上少开窗口,特别是网络类的,如 QQ,有时会发现开 QQ 后,编译过程中 VC 会挂死,呵呵。有可能是开QQ后防火墙过滤网络数据占用较多系统资源,如果发现VC 编译特别慢或干脆挂死,可以重启动一下电脑,只开必要的窗口,然后开始编译。如果编译过程中发现怪异的问题,如:incomingstringiddef.h(120) : error C2059: syntax error : constant 或者erro
16、r C2065: STR_CM_REDIAL : undeclared identifier 之类这个时侯你可能需要看一下你VC 相关路径的设置顺序,如下图:把 VC 原本的头文件路径调整到最前面,我刚开始编译的时候SDK 的头文件在前面,编译总是通不过,改一下就好了,库也一样都调整下比较保险,呵呵。6)Tracer 跟踪工具名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 41 页 - - - - - - - - - 解压文件 P1300_Build_Guide.rar到
17、 E:MTK_P1300,然后在文件管理器进入目录“E:MTK_P1300P1300_Build_Guide”,接着解压 Catcher_L1_v3.10.01.zip到当前目录下的 Catcher_L1_v3.10.01子目录,进入子目录Catcher_L1_v3.10.01 ,发送一个 Catcher.exe的快捷方式到桌面。在需要用到 TRACE 的时候,在代码中使用函数void kal_prompt_trace(module_type mod_id, const kal_char *fmt,.); 打印需要查看的信息,使用 Catcher跟踪查看。这个有点类似 Linux 的 Kern
18、el Debug工具,具体使用方法见文档cather使用手册.doc,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南 .rar”里面找到。7)烧录工具解压文件“ E:MTK_P1300P1300_Build_Guide FlashTool_UI_exe_v3.1.05.zip”到当前目录,然后进入目录“ E:MTK_P1300P1300_Build_GuideFlashTool_v3.1.05”,发送一个Flash_tool.exe的快捷方式到桌面好了。还有个下载工具 FlashTool_v3.0844.00.rar ,也是不用安装,解压后直接用的,据说烧录速度比上面那
19、个快。具体使用方法见文档 flash_tool_MT 平台使用教程 .doc,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南.rar”里面找到。8)USB 串口下载线驱动运行压缩文件“E:MTK_P1300P1300_Build_Guide PL2303_Driver_XP2K_v204102.zip ”里面的可执行文件进行安装,一路下一步,这里不再赘述。二、Hello World 上面一节我们建立好了开发环境, 现在是时候实战一把了, 在进行实质性的项目开发之前,我们先来了解下 P1300上写程序的一般性做法。从“ Hello World ”开始吧,有句笑话讲: “会
20、编程就是会 Hello World ,编程高手就是会写很多个Hello World ”,虽 然是句笑话,但是细想也是有道理的, 麻雀虽小五脏俱全嘛, 掌握了框架, 剩下的就无非是些编程技巧的问题了。这和建房子一个道理,地基打的深不深,框架建的是否合理,决定房屋总体质量好不好,其他就是装修的功夫了, 当然还有水电线路的铺设, 这涉及到习惯和技巧了, 设计不好会漏水漏电,哈哈。扯远了,下面开始Hello World 。下面为描述上的方便,我们将Hello World 称为一个模块。首先建立新的模块目录,之后把模块相关文件都放到这个目录下统一进行管理,新的模块一般放到plutommiMMI 下面,这
21、里我们新建一个目录 “HelloWorld ” , 然后在模块目录“HelloWorld ” 下再建三个子目录:“Inc” 、“Src”和“ Res”,分别用来存放模块的头文件、源文件和资源文件,目录结构如下图所示:接着我们在 Inc 下创建几个头文件: HelloWorldGprot.h ,HelloWorldProt.h, HelloWorldTypes.h, HelloWorldDefs.h, 再在 Src下创建一个源文件: HelloWorld.c ,关于文件名和函数名等的命名标准每个公司及个人各有不同,统一就好,否则在进行大的项目开发时彼此协同会遇到问题,有时候弄不好光这些问题就能折
22、腾你半天甚至数日或数月,呵呵。上面几个文件的作用我大致讲下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 41 页 - - - - - - - - - HelloWorldGprot.h 模块对外接口, 供模块外部调用的函数原型在此申明,模块内部接口就不要放这里了HelloWorldProt.h 模块内部接口,供模块内部调用的函数原型在此申明HelloWorldTypes.h 本模块用到的一些常量、自定义数据类型、结构的定义HelloWorldDefs.h 本模块用到的
23、资源ID 定义HelloWorld.c 模块功能函数的实现部分头文件 HelloWorldGprot.h 的内容大致如下:/*/#ifndef _HELLOWORLD_GPROT_H_#define _HELLOWORLD_GPROT_H_#include PixtelDataTypes.h#include HelloWorldTypes.hextern void mmi_HelloWorld_entry(void);/* 模块入口,理解成dos程序的 main 好了 */#endif /* _HELLOWORLD_GPROT_H_ */*/头文件 HelloWorldProt.h 的内容的大
24、致如下:/*/#ifndef _HELLOWORLD_PROT_H_#define _HELLOWORLD_PROT_H_#include HelloWorldGprot.hextern void mmi_HelloWorld_entry(void); /* 本模块主界面入口例程*/extern void mmi_HelloWorld_exit(void); /* 本模块主界面退出例程*/名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 41 页 - - - - - - -
25、 - - #endif /* _HELLOWORLD_PROT_H_ */*/其他几个文件的内容因模块功能而异,这里先略过,后面再讲。紧接着,我们要修改的相关系统文件,使这个模块成为整个项目的一部分,需要修改的系统文件如下:makeplutommiplutommi.inc 所有 mmi 部分的头文件所在目录的相对路径列表makeplutommiplutommi.pth 所有 mmi 部分的源文件所在目录的相对路径列表makeplutommiplutommi.lis 所有 mmi 部分的源文件 (相对路径 )列表在上述 3 个文件里面分别加上我们模块的对应内容,就现在讲的HelloWorld 而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年MTK开发心得 2022 MTK 开发 心得
限制150内