MTK6520开发入门(一)

合集下载

MTK平台软件开发过程介绍课件

MTK平台软件开发过程介绍课件
抓取LOG的工具:Catcher 修改系统参数工具:META 5.5 修改资源文件的工具:MCT6.0及MCT3.0(专
题培训) CPU硬件资源配置工具:DrvTool(专题培训) IMEI及序列号写入工具:SN_Station
4
DAYO Mobile Confidential 2023/12/22
MTK开发基本环境及工具
2
DAYO Mobile Confidential 2023/12/22
MTK平台软件开发所需的基本环境
ARM编译环境:ADS1.2.1(ARM Developer Suite 1.2.1)
模拟器编译环境:Microsoft Visual C++ 6.0 运行编译命令需要Perl语言支持,需要安装
30
连接手机
设置串口参数
DAYO Mobile Confidential 2023/12/22
点击连接按钮,如想保留上次LOG信息,请取消“Clear when connect”
31
设置过滤条件
DAYO Mobile Confidential 2023/12/22
因LOG信息很多,可通过设置过滤条件只获取指定模块的LOG信息
codegen_modis
打开 modis\modis.dsw文件使用VC进行编译(Rebuild all) 或者使用命令行方式直接进行分布式编译:
Buildconsole .\modis\modis.dsw /MAKE “Modis – WIN32 Debug” /REBUILD
12
模拟器如何运行
加载手机软件常见问题
Q:红条完成后,蓝条不跑,弹出错误信息
A:检查是否所使用的FlashTool不支持手机所用的Flash型号,如 是,则需要更换FlashTool版本

MTK平台应用软件开发基础知识

MTK平台应用软件开发基础知识

以上编译工具均按默认路径安装。
2 编译命令与文件
MTK编译分资源的编译和代码的编译 2.1 资源的编译 在如下的情况下,需要重新编译资源: • 修改了字符串资源文件(Ref_list.txt)、字库文件(FontRes.c,L_**.h)、MMI配置 文件(MMI_featuresPLUTO.h)等,这些文件位于 ..\plutommi\Customer\CustResource\PLUTO_MMI\ ; • 修改了MMI资源装载配置文件,这些文件位于 ..\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI 目录下,这个目 录下都是Res_*.*文件,是各个AP或模块的资源装载文件,包括菜单、图片和字符串 资源的装载配置。 编译方法:进入..\plutommi\Customer目录,执行remakeResource.bat。若是 在模拟器上使用,则还需要在VC环境下build一下,就可以看到效果了。
MTK平台应用软件开发基础
1 编译环境
操作系统:Win XP, Windows 2000/2003 编译器:ADS1.2 (Arm Developer Suite) 编译器补丁:ADS1.2_update_848.exe Perl解析: ActivePerl-5.8.8.820-MSWin32-x86-274739.msi
目标文件: 生成的目标文件为.bin文件,位于..\build\proj目录下面,build目录为生成的一个目 录。 Log文件 Log文件同.bin文件一样,也是位于build目录下,如果编译出错,可以在命令行中看 到出错的模块,然后到build目录下找对应的Log文件。 MT6225o目录 包含所有生成的obj文件和lib文件。 MT6225r目录 包括了每个模块的依赖文件(由mak产生的.dep)。

MTK新语言开发指南

MTK新语言开发指南

MTK新语言开发指南外销的语言开发是整个外销软件开发的基础,只有字库和输入法已经OK了,才能谈上其它的开发工作。

现在以Russian语的开发为例,详细介绍一下语言开发的步骤和注意事项。

一:前期工作1:首先要确认目前的软件版下本是否已经支持了所要开发的语言。

如果支持就要注意下边两项就可以了,目前我们的codebase都比较新一般语言都已经支持,请注意波斯语,06B 的软件才支持波斯语。

如果当前的软件不支持新语言,一般情况下建议不要在此软件版本上开发此项目,如果有特殊原因一定要开发.如果一般语言开发可以接受如:越南、俄罗斯语开发。

如果是比较的语言开发如:阿拉伯语、波斯语、Hindi语开发就要谨慎考虑。

开发的话需要从已经开发完成的别的机型移植,经常会遇到莫名其妙的问题。

2:需要确认所需字库是否已有了,如果没有,联系对外合作部让客户发过来字库的demo 以方便我们确认字库的大小和让客户确认字体的美观程度是否可以接受。

Demo字库确认后通知对外合作部购买此字库。

3:最后需要确认智能输入法是否已经有了。

如果没有通知对外合作部购买此输入法.我们公司目前MTK平台使用的是Zi的输入法,要确认目前的软件codebase支持的是zi 6.0 还是7.0的版本,要选择和软件版本对应的zi输入法库。

二:字库的添加字库数据是字库bdf 源文件能过MCT中的Font custom tool生成一个.h和.c文件,在我们项目中的FontRes.c中包含.h文件,然后把.c添加到fontres.c中合适的位置。

下面详细说明下:使用MCT中的Font custom tool生成字库数据详细图解第一步:点击Add 按钮,在Language输入框输入你要添加的语言名称。

点Next进入到第二步,在Lang输入框中输入此语言的语言代码,注意此代码要和我们软件中的SSC_XXX的值(XXX为语言英文名)一致。

`在language输入框中选择,Alphabetic在Lang Country输入框中选择RUSSIAN。

MTK编程起步建立新APP和资源定义

MTK编程起步建立新APP和资源定义

MTK编程起步——建立新APP和资源定义2010-12-03 11:06:30| 分类:MTK工作总结| 标签:|字号大中小订阅说明:本文档适用MT6253 09a和MT6235 09a平台。

本文参考相应文献并作相应修改。

一、添加新程序的步骤:1、创建目录及文件:目录一:plutommi\MMI\FirstApp目录二:plutommi\MMI\FirstApp\FirstAppInc文件列表:MyAppDefs.h:用于存放本程序所需要的类型,结构,常量的定义MyAppProt.h:用于存放本程序中的所有函数声明,但此文件只被本文件的源程序所加载MyAppGprot.h:也是用于存放函数声明,但是此文件是用于别的程序加载,即此文件中的函数声明的都是对外的接口MyAppResDef.h:用于存放本资源ID的定义接口目录三:plutommi\MMI\FirstApp\FirstAppSrcFirstAppSrc.c程序的主源文件2、将文件加入项目:修改make\plutommi\mmi_app\下的三个文件:1)mmi_app.lis:此文件用来申明MMI所要编译的所有源文件,添加如下一行:plutommi\MMI\FirstApp\FirstAppSrc\FirstAppSrc.c2)mmi_app.inc:此文件用来指明MMI所有头文件所在目录,同样添加:plutommi\MMI\FirstApp\FirstAppInc3)mmi_app.pth:此文件用来指明MMI所有源文件所在目录,添加:plutommi\MMI\FirstApp\FirstAppSrc3、添加程序开关:方法一:将MMI编译开关添加到文件plutommi\mmi\inc\MMI_features.h:#define __MMI_FIRSTAPP__方法二:在make\Option.mak文件末尾添加:COM_DEFS+=__MMI_FIRSTAPP__4、在文件头部加入以下语句以加载程序模块:#ifdef __MMI_FIRSTAPP__#include "FirstAppGprot.h"#endif二、添加资源的步骤:1、在plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\下添加本程序的资源装载文件Res_FirstApp.c,并在文件中添加函数void PopulateFirstAppRes(void){}2、在plutommi\Customer\ResGenerator\MakeFile文件中添加如下两行:-I "../../MMI/FirstApp/FirstAppInc"\注意此处最后一行末尾是没有“\”的3、修改plutommi\MMI\Resource\PopulateRes.c文件:在开头处添加:#ifdef __MMI_FIRSTAPP__extern void PopulateFirstAppRes(void);#endif在void PopulateResData(void)函数中添加如下代码:#ifdef __MMI_FIRSTAPP__RES_PRINT_INFO(("Populating FirstApp Resources\n"));PopulateFirstAppRes();#endif4、添加资源ID范围:1)在基础ID 统一定义文件plutommi\MMI\Inc\MMIDataType.h中找到RESOURCE_BASE_ENUM枚举类型定义处,合适位置添加如下:#ifdef __MMI_FIRSTAPP__RESOURCE_BASE_RANGE(FIRSTAPP, 50),#endif2)找到如下定义块:/* Beginning of resource table */RESOURCE_BASE_TABLE_BEGIN()……/* End of resource table */RESOURCE_BASE_TABLE_END()在块中间末尾位置添加:/***************************************************************************** FirstApp*****************************************************************************/#ifdef __MMI_FIRSTAPP__#define FIRSTAPP_BASE ((U16)RESOURCE_BASE_FIRSTAPP)#define FIRSTAPP FIRSTAPP_BASE#define FIRSTAPP_BASE_MAX ((U16)RESOURCE_BASE_FIRSTAPP_END)RESOURCE_BASE_TABLE_ITEM(FIRSTAPP)#endif3)在我们自己程序的FirstAppResDef.h中给自己的程序添加屏幕序号:typedef enum{SCR_FIRSTAPP_MAIN = FIRSTAPP_BASE + 1,} SCREENID_LIST_FIRSTAPP;4)在主程序的EntryFirstAppScreen函数中将调用的EntryNewScreen函数的第一个参数改为SCR_FIRSTAPP_MAIN,即:void EntryFirstAppScreen(void){EntryNewScreen(SCR_FIRSTAPP_MAIN, NULL, EntryFirstAppScreen, NULL);}三、字串资源的添加:1、给字串资源添加ID,即在FirstAppResDef.h中添加:typedef enum{STR_FIRSTAPP = FIRSTAPP_BASE + 1,STR_FIRSTAPP_HELLOMTK,STR_FIRSTAPP_TOTAL}STRINGID_LIST_FIRSTAPP;2、在plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加一行。

腾讯MTK开发基础培训资料——经典

腾讯MTK开发基础培训资料——经典

Protocol vendors
(Optimay, Condat…)
Software platform vendors (Symbian, Stinger, Linux, Palm OS…)
PowerManagement IC
Base-band chip vendors (TI, Infineon, Philips, Conexant, Motorola, ADI, Intel…)
手机OS初始化流程(1)
BootLoader启动过程:(Bootarm.s)
a)初始化中断向量表,注册中断处理函数。 b)设置C语言的堆栈,设置ro,rw,zi。 c)拷贝flash的数据段到内部ram或外部ram。 d)最后跳转到Nucleus 系统初始化__main处(其源代码不可见)。
手机OS初始化流程(2)
部分客户需要
替代合作名单中的软件 (如中文之星输入法) 合作名单中没有的类型(如OCR扫描软件)
其他
SP公司自行开发并推广的软件(如音乐在线播放客户端)
Nucleus OS简介
Nucleus OS是美国源代码操作系统商ATI公司推出的 新一代嵌入式操作系统,属于抢先式实时多任务操 作系统内核, 95%的代码使用ANSI C编写,便于移 植,在RISC上只占40K,以其优异的性能及源代码 开放特性在各个领域获得了广泛的应用。 MTK 操作系统是基于Nucleus OS一个实时RTOS。 Necleus OS提供嵌入式操作系统的核心,提供内存管 理、进程调度、线程管理、定时器机制、中断处 理、、信号、MailBox、MMI初始化等核心机制。
大陆布局
深圳 :手机、数字电视、光存储技术支持中心 北京:手机软件研发(CMCC定制,智能手机) 合肥:GIS系统 上海:高清认证实验室、手机技术支持办事处

MTK从入门到精通(第5章+MTK开发平台搭建)

MTK从入门到精通(第5章+MTK开发平台搭建)

第五章:MTK开发平台搭建导读:前面几章,我们一直都在讲一些MTK的背景知识,试图让大家对MTK有个感性的认识,当你对即将要向大家学习的MTK开发有个大概的了解之后,再来研究里面的一些细节,对你接下来的学习肯定是大有益处。

从这一章开始,我们将慢慢地向大家铺开MTK开发实战方面的内容,让大家尽快步入MTK开发的殿堂,也就是我们所说的“入门”。

好了,言归正传,我们把话题切换到平台搭建上来。

古人云:君欲行其事,必先利其器,那么学习MTK也一样,必须要有好的工具来辅助我们学习,辅助我们开发,工具选好了,选对了,让我们接下来的学习和工作事半功倍。

本章我们将详细的介绍MTK开发平台的搭建过程,首先是介绍MTK 开发平台所需的资源和工具,以及获得这些资源的方式,接下来介绍如何正确安装和配置相应的软件工具,并告诉读者如何检测环境搭建是否成功,然后我们重点介绍了Source Insight软件,并介绍如何把代码加载到Source Insight软件当中,接着,文章还给出了分布式编译的原理,在MTK开发中引入分布式编译的意义,以及如何搭建自己的分布式编译系统,最后对整章做了一下总结。

因为本章是学习接下来知识的基础,所以希望读者能认真阅读。

如果遇到问题,也可以到我们的iMTKoo论坛()来发帖询问,我们的版主会尽快的给予解答。

需掌握的内容:1.了解MTK开发平台所需的各种软件。

2.掌握开发平台的搭建过程。

3.掌握如何应用MTK工具检测开发平台是否搭建成功。

4.了解各种第三方软件在我们的编译过程中扮演的角色。

5.了解各种官方软件的作用。

6.掌握分布式编译的原理以及分布式编译系统的搭建。

5.1 MTK开发所需的资源和工具在进行MTK开发平台搭建的讲解之前,笔者觉得有必要对这些软件做一些简单的介绍,让大家大致了解,这些软件在我们平台中的作用。

然后我们还将告知大家如何去获取这些软件,以及对这些软件版本的要求,这一点非常的重要,我这里做一次强调,平台搭建中所需的软件版本,并不是越新越好,请使用我们推荐的版本,否则可能会出现各种编译错误。

mtk 开发方案

mtk 开发方案

MTK 开发方案1. 简介本文档旨在为开发人员提供关于 MTK(MediaTek)开发方案的详细介绍和指导,帮助开发人员理解和使用 MTK 平台进行软件开发。

2. MTK 平台概述MTK 是台湾联发科技(MediaTek Inc.)推出的一个高度集成的系统级芯片平台。

该平台集成了处理器、图形处理器、内存、无线通信和多媒体功能等,适用于移动通信、智能穿戴设备、物联网等领域的软件开发。

MTK 平台的主要特点包括:•高度集成:MTK 平台集成了多种功能模块,减少了硬件组件的复杂性和成本。

•可定制性:MTK 平台提供了丰富的开发框架和工具,开发人员可以根据需求进行定制和扩展。

•多媒体支持:MTK 平台具备强大的多媒体处理能力,支持高清视频播放、图像处理、音频解码等。

•低功耗:MTK 平台采用先进的节能技术,可有效延长移动设备的电池寿命。

3. 开发环境搭建要在 MTK 平台上进行开发,需要先搭建开发环境。

以下是对开发环境的基本要求和步骤:3.1 基本要求•操作系统:Windows、Linux 或 macOS•Java Development Kit(JDK):版本要求为 8 或以上•Android Studio:最新稳定版•MTK 开发工具包(SDK)3.2 安装步骤1.安装 JDK:根据操作系统下载合适版本的 JDK 安装包,然后按照提示完成安装。

2.安装 Android Studio:访问 Android 官方网站并下载最新版本的 Android Studio 安装包。

安装过程中需要选择安装 SDK 和相关组件。

3.配置 SDK:启动 Android Studio,选择。

MTK初级开发

MTK初级开发

1、MTK开发环境介绍 (1)1.1 开发环境搭建 (1)1.1.1 简介 (1)1.1.2 编译工具和辅助工具 (2)1.1.3 编译环境搭建 (2)1.1.4 编译环境检查 (2)1.1.5 开始编译 (3)1.1.6 仿真环境 (4)1.1.7 烧写程序 (4)1.2 编译指令 (4)1.2.1 指令介绍: (4)1.3 编辑环境 (5)1.3.1 关于Soureinsight (5)1.4 开发目录结构解析 (5)2、MTK架构分析 (7)2.1 MTK提供的GSM软件方案 (7)2.1.1 软件方案 (7)2.2 MediaTek为用户提供3个工具 (7)2.2.1 工具 (7)2.3 MTK软件架构图 (8)2.4组成该软件方案 (8)2.4.1 MS可执行软件 (8)2.4.2 移动设计测试结构 (17)2.4.3 Catcher (17)2.4.4 Flash Tool (21)2.4.5 程序整体结构 (30)2.4.6 MMI的EVENT (34)1、MTK开发环境介绍1.1 开发环境搭建1.1.1 简介搭建MTK开发环境前需要有一套MTK的源码。

MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的perl脚本或c程序,将资源包生成c源程序,并与相应模块的c程序.o,.lib或.obj的中间代码,最终生成在手机上使用的.bin文件和在模拟器上使用的mmiresource.dll资源文件。

1.1.2 编译工具和辅助工具Ads1.2Ads12_Patch_Windows.exePerl5.6.11.1.3 编译环境搭建按默认路径安装ADS1.2,并安装848补丁包按默认路径安装Perl1.1.4 编译环境检查检查软件安装情况如果确认全部安装,可跳过此步。

检查windows环境变量打开..\make\option.make,检查关于ADS编译器的路径设置ifeq ($(strip $(COMPILER)),ADS)DIR_ARM = c:\adsv1_2DIR_ARM := $(strip $(DIR_ARM))DIR_TOOL = $(DIR_ARM)\binDIR_ARMLIB = $(DIR_ARM)\libDIR_ARMINC = $(DIR_ARM)\includeEndif1.1.5 开始编译切换到项目根目录,然后在命令行下面执行命令:make custom=NEOTEL25_06B gprs new其中,命令可以为clean, update, remake,命令行输入make NEOTEL25_06B gprs new,来看看怎么知道custom是NEOTEL25_06B 的,project是gprs的? 在build目录下有个NEOTEL25_06B目录,这个目录下有个NEOTEL25_06B_GPRS.mak,这个文件名由custom和project的组成,另外再打开build目录下make.ini配置文件即可以证明。

MTK入门基础

MTK入门基础

一、树立自信心:总的来说,在MTK平台上开发软件并不是一件特别难的事情。

要树立自信心,关键是要发现自己能做出一点小的东西来,增加对它的兴趣。

刚开始你可以在屏幕上显示一个文本,然后你可以尝试去显示一个具有某种风格的窗体,接着可以试着添加一个菜单。

这些东西学会后主管会给你一些小的任务,比如去解一些小的bug,更换某个应用程序的界面图片,显示风格等。

随着你对MTK的逐步了解,你会接触越来越多的新鲜玩意,当然难度会相应增加,当然你可能并未明显察觉,只要你循序渐进,这些都是没有问题的。

当然困难肯定是有的,你可以去主动问其他的同事。

MTK是一个多线程的嵌入式开发环境,可以通过一些命令对代码进行编译,如果通过编译,就会在“(代码根目录)\build \ (工程名) \”目录下生成6个文件,分别是*.bin 文件、scat*.txt、*.elf、*.lis、*.sym、*.log 。

这些文件中前两个是我们最经常使用的,bin 文件就是我们用来下载到手机中的二进制的镜像文件,scat*.txt用于加载这个镜像文件。

我们的下载(烧写)工具是一个叫fllash tool的小软件。

如图怎样下载?1.运行Flash tool2. 选择Download Agent文件的路径:我的Flash Tool 放在F:\MTK工具\FlashTool_v3.2.0,Download Agent就在这个目录下。

3.选择scat*.txt文件4.如果红色方框内有location栏不为空,说明bin文件已经装载成功。

给手机装上电池,点击Download,然后插上烧写线即开始下载程序,当显示一个OK 的小弹出框时,表明烧写完毕,可以拔下烧写线开机了。

怎么样,是不是觉得很神奇呀?下面的东西更神奇。

需要说明一下:Download Agent文件只需要选择一次就够了,当然如果发现文件没有正确选择,重新选择正确的那个就好了。

如果你想要格式化手机的ROM,你可以在手机烧写成功后,点击Format你也可以在每次烧写的最后进行格式化动作,只需要Option菜单下的Format FAT,在弹出框中选中Auto Format FAT即可。

MTK应用入门

MTK应用入门

MTK MMI应用入门:1、初始化例程,注册一系列处理函数,比如协议事件处理函数、按键事件处理函数、消息事件处理函数、选中菜单处理函数等等。

2、选中菜单处理函数(Highlight Handler functions)。

即根据用户的定义,选择某菜单时需要执行的函数。

3、完成入口函数(Entry functions)。

即当前应用被其他应用覆盖,其他应用结束后回到当前应用所需要调用的函数。

4、完成退出函数(Exit functions)。

即当前应用被其他应用覆盖时,为保存当前应用的一些现场数据而需要调用的函数。

5、完成业务逻辑,在不同screen之间的进行切换调用。

MMI 采用screen流的方式进行屏幕之间的转换,进入新的screen之前,执行被覆盖screen 的exit函数,并将相关信息存入历史记录,然后进入新的screen, 从新的screen退出后从history数据库取出上一screen的信息,进入其entry函数。

以下代码片段的API都是系统提供的,可在头文件中找到其原形。

初始化函数代码片断://以下两个API参考eventGprot.hV oid MMSInitialization(void){//设事件处理函数如下闹钟超时处理时间SetProtocolEventHandler(AlmExpiryHandler, MSG_ID_MMI_EQ_ALARM_IND);//设置Highlight Handler函数当点mms菜单后调用相应函数HighlightMMSHandler SetHiliteHandler (MESSAGES_MENU_MMS_MENUID, HighlightMMSHandler);}入口函数代码片断:// 本例为进入短信主菜单的处理函数相关接口函数可在对应的头文件中查找void EntrySMSMainMenuList (void){U8* guiBuffer;U16 nStrItemList[MAX_SUB_MENUS];U16 numItems;U16 itemIcons[MAX_SUB_MENUS];U8* popUpList[MAX_SUB_MENUS];U32 menuItemId=-1;U32 menuItemId1=-1;U32 maskingByte=-1;U8** pPopUpList=NULL;//进入入口函数必须首先调用EntryNewScreen, 该函数执行上一屏幕的退出函数,并记录当前屏幕的入口和退出函数EntryNewScreen(SCR_ID_MSG_SMS_MAIN_MENU, mmi_msg_exit_generic, EntrySMSMainMenuList, NULL);//设置当前screen IDSetMessagesCurrScrnID(SCR_ID_MSG_SMS_MAIN_MENU);//获取当前screen 的gui buffer,用于被当前screen被覆盖后存入历史记录guiBuffer = GetCurrGuiBuffer (SCR_ID_MSG_SMS_MAIN_MENU);//设置当前screen的父menu IDSetParentHandler (MESSAGES_MENU_SMS_MENUID);//注册Highlighthandler处理函数RegisterHighlightHandler (ExecuteCurrHiliteHandler);//获取当前菜单子菜单数目numItems = GetNumOfChild (MESSAGES_MENU_SMS_MENUID);//获取子菜单的stringGetSequenceStringIds(MESSAGES_MENU_SMS_MENUID, nStrItemList);//获取子菜单IconGetSequenceImageIds(MESSAGES_MENU_SMS_MENUID, itemIcons);mmi_msg_set_msg_num_hint (msgbox_info.totalinbox, msgbox_info.totaloutbox, msgbox_info.totaldraftbox);ConstructHintsList(MESSAGES_MENU_SMS_MENUID, popUpList);mmi_msg_set_msg_menu_highlight_handler();if (g_msg_cntx.msg_init){pPopUpList = popUpList;}else{pPopUpList = NULL;}menuItemId=GetChildMenuIDIndexByParentMenuID(MESSAGES_MENU_SMS_MENUI D, MESSAGES_MENU_INBOX_MENUID);if(menuItemId!=-1){if(IsResetCSPGroupService(CSP_TELESERVICES_SERVICE_GROUP,CSP_SM_MT)){ResetBit(maskingByte,menuItemId/*1*/);}}menuItemId=GetChildMenuIDIndexByParentMenuID(MESSAGES_MENU_SMS_MENUI D, MESSAGES_MENU_WMESSAGE_MENU_ID);menuItemId1=GetChildMenuIDIndexByParentMenuID(MESSAGES_MENU_SMS_MENU ID, MESSAGES_MENU_OUTBOX_MENUID);if(menuItemId!=-1 && menuItemId1!=-1){if(IsResetCSPGroupService(CSP_TELESERVICES_SERVICE_GROUP,CSP_SM_MO)) {ResetBit(maskingByte, menuItemId/*0*/);ResetBit(maskingByte,menuItemId1/*2*/);}}menuItemId=GetChildMenuIDIndexByParentMenuID(MESSAGES_MENU_SMS_MENUI D, MESSAGES_MENU_CB_MENUID);if(menuItemId!=-1){if(IsResetCSPGroupService(CSP_TELESERVICES_SERVICE_GROUP,CSP_SM_CB)) ResetBit(maskingByte,menuItemId/*6*/);}menuItemId=GetChildMenuIDIndexByParentMenuID(MESSAGES_MENU_SMS_MENUI D, MESSAGES_MENU_VMAIL_MENUID);if(menuItemId!=-1){if(IsResetCSPGroupService(CSP_V ALUE_ADDED_SERVICES_SERVICE_GROUP,CSP_ VPS))ResetBit(maskingByte,menuItemId/*5*/);}MaskStringItems(popUpList,(U8)numItems,maskingByte);MaskItems(itemIcons,(U8)numItems,maskingByte);numItems=MaskItems(nStrItemList,(U8)numItems,maskingByte);MaskHiliteItems(MAIN_MENU_MESSAGES_MENUID, maskingByte);g_msg_cntx.currBoxIndex=0;// show category 函数,将上面准备好的参数传递进去,show当前screen ,show category 系统已经提供了足够多风格的函数选择,可根据需要调用对应的showcategory函数.ShowCategory52Screen (STR_SMS_MENUENTRY, IMG_SMS_ENTRY_SCRN_CAPTION,STR_GLOBAL_OK, IMG_SMS_COMMON_NOIMAGE,STR_GLOBAL_BACK, IMG_SMS_COMMON_NOIMAGE,numItems,nStrItemList, itemIcons,(U8 **) pPopUpList ,0, 0,guiBuffer );//注册右软件处理函数返回键SetRightSoftkeyFunction (GoBackHistory, KEY_EVENT_UP);//同上SetKeyHandler (GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);}退出函数代码片断:退出函数在进入函数的EntryNewScreen中第二个参数被注册,进入当前screen时执行上仪screen的exit函数。

MTK教程简单教程(必看)

MTK教程简单教程(必看)

MTK使用教程
1.驱动安装。

解压,然后选择驱动自动安装:
2.
完成上一步,可直接到下一步软件包选择。

手动安装驱动教程在详细教程里面,能读取到端口即可不看。

3.打开工具,开始刷机
4.点击右侧配置文件,选择升级软件包(刷机包需先解压)
5.点击开始。

手机关机状态,插数据线连接电脑(台式机最好插到主机后面)。

{个别手机对电量有要求刷机前电池50%以上最好。

个别手机不需要电池也可刷机,也有一些需要按住音量键(加或者减或者两个同时按住)插线。

}
6.出现红色滚动条时说明连接成功,等黄色条开始走时松开手。

当出现黄色滚动条开始走,并且达到100时即升级完成,升级过程中耐心等待,
中途不要乱动线(防止插口接触不良)。

出现对号后,拔下数据线,重新插拔下电池,开机。

首次开机需要更新系统,耐心等待3到5分钟,中途不要动手机,以防断电。

(可能会多次重启)
7.手机开机,测试没问题时,关机重启,再正常使用。

更多的详细资料,和最新原厂升级救砖包,可来群2463595找群友解答,由于群是免费群,各维修界的同僚,可进群来帮下忙,我可免费提供你更多的最新原厂救砖包,个人力量有限,多靠大家支持。

群官网/。

MT7620入门教程-NetRouter硬件说明

MT7620入门教程-NetRouter硬件说明

NetRouter简介
NetRouter开发套件采用联发科的MT7620A处理器,具有丰富的硬件资源,提供了完善的Linux 软件支持包、开发工具和丰富的实用范例,让客户像学习51单片机一样学习Linux,大大降低了Linux 学习门槛和开发难度,全网最丰富的外围接口,I2C、I2S、SPI、USB、双串口等独立引出,大大满足客户需求,帮助用户在短期内实现产品功能验证和开发。

如下图所示为NetRouter开发套件的主板外观及基本接口分布:
(图片仅供参考,具体以实物为准)。

为方便用户开发节省用户时间,提供以下参考资料并送已搭建好的原厂SDK和openwrt系统,虚拟机打开即可使用。

mtk入门必看

mtk入门必看

操作系统
Nucleus 实时操作系统,MTK封装了适配层,将OS 封装了一些API,这些API为其他软件提供 服务,如:队列,消息,timer,内存管理 等
L1层协议栈(GSM 物理层)
L1或者叫物理层,提供物理介质上的bit流 传输,遵循 gsm 技术05系列规范 为上层软件提供服务,且控制逻辑信道到 物理信道的映射和安排 无线控制以及TDMA桢
CC Circuit-switched call control 电路交换呼叫控制 SS supplementary service 附加服务 SMS short message service 短消息服务 SM session management 会话管理 MM/GMM mobility management 移动性能管理 SNDCP sub-network dependent convergence protocol
PMIC
KEYPAD
JPEG Decoder
外设功能解释
SIM: Subscriber Identity Module UART: Universal Asynchronous Receiver/Transmitter SPI: Serial Port Interface LCD: Liquid Crystal Display GPIO: General Purpose Input/Output GPT: General Purpose Timer RTC: Real Time Clock WDT: Watch Dog Timer PWM: Pulse Width Modulation Alerter Keypad PMIC: Power Management IC BMT: Battery Charging Management task AUX task: Auxiliary task ADC Sched.: Analog to Digital Converter Scheduler USB task: The USB 1.1 protocol and driver IrDA task: The IrDA and driver Camera: Camera driver for integrating with 3rd party camera module MSDC: Memory card driver, supporting SD, MMC cards and Memory Stick JPEG Decoder: Software for controlling hardware JPEG decoder

MTK方案操作手册

MTK方案操作手册

MTK方案操作手册菜单设置:按遥控器的setup键进行功能选择:可以进行以下五个页面的设定:通用设定(General Setup)、音频设定(Audio Setup)、视频设定(Video Setup)、初期设定页(Preference Page)、密码设定(Password Setup).通用设定音频设定视频设定初期设定页密码设定退出设定按左(left),右(right)键进行页面间的切换,按上(up),下(down)键页面内的选择,按play键选种页面里面的功能,按左键(left)返回到上一个状态。

1.通用设定(General Setup)(此页面有六项设定)1.1电视机形式(TV Display)注:只对16:9碟片有效1.1.1正常/全景(Normal/PS)适用于一般尺寸电视机,播放宽屏幕图像时,图像左右边缘被切除,把图像放映到整个屏幕上PS1.1.2正常/信箱Normal/LB)对于一般尺寸电视机,播放宽屏幕图像时,电视屏幕的顶部和底部出现黑色边框。

LB1.1.3宽银幕(wide)适用于宽屏幕电视机16:9 raw1.1.4 wide squeeze16:9宽屏幕电视机播放4:3屏幕图像时,两边将被拉伸,故需在水平方向进行压缩,宽屏幕两边将出现黑边。

squeeze1.2 角度标记(Angle Mark)可对角度标记进行“开、关”选择。

播放记录多角度画面碟片时,选择“开”角度标记在屏幕显示出来,“关”则不显示。

1.3显示语言(OSD LANG)可对屏幕上的显示(OSD)进行“ENGLISH、中文”等进行选择。

1.4隐藏字幕(CAPTION)对NTSC制式电视机,可对内含CLOSED CAPTION功能的碟片进行CAPTION显示或隐藏选择。

须电视和碟片支持,否则无法进行该操作。

1.5屏幕保护(screen save)可对屏幕保护设置进行“开、关”选择。

选择“开”时,机器停止播放一定时间后,屏幕出现屏幕保护画面;选择“关”,屏幕保护画面不会出现。

MTK第一讲

MTK第一讲

MTK数据类型
U8 U16 U32
S8 S16 S32
unsigned char unsigned short unsigned int
signed char signed short signed int
创建新屏幕函数
U8 EntryNewScreen(U16 newscrnID, FuncPtr newExitHandler, FuncPtr newEntryHandler, void *flag);
程序入口
1、MTK是一个耦合性很高的平台,很难做到使
自己的程序域平台完全无关,很多时候程序都 是和整个系统固定在一起的 2、在MTK平台上编写程序,就需要在MTK这个 大程序中添加一个新入口,以便让代码融入 3、这个例子的程序入口是借用的主菜单中的工 具箱入口,选择这个模块的主要原因是其内部 模块相对独立,任何改动对整个系统的影响较 小 4、添加新入口,下节课讲模块添加时才讲
newscrnID: 屏幕ID是惟一标识。每一个屏幕对应一个ID。新屏幕ID 需要声明,例子先借用organizer的屏幕ID newExitHandler:屏幕的退出函数。系统在退出当前屏幕的时候会自 动调用该函数,可以在里面做一些资源的释放工作,类似C++中 类的析构函数。如果在进入新屏幕的时候动态分配了内存,那 么就自己编写出退出函数,进行内存释放。 newEntryHandle:屏幕的入口函数。只有传入此参数,系统才会将 屏幕加入历史,即系统会默认把上一屏幕压入历史栈中 Flag:一般设置为NULL,目前暂时不使用

Source Insight
5、常用功能 Search 在打开文件中搜索 Search Files 在一些文件中搜索 Search Project 在整个项目中搜索 Replace 替换打开文件中出现的 Replace Files 替换一些文件中出现的 Go to Line 调到文件的第几行 6、注释字体/大小/倾斜的设置 Option->Style Properties

MTK手机开发入门教程(1)

MTK手机开发入门教程(1)

一、开发环境设立1、开发主机要求及所需工具:操作系统:Windows 2000, WinXP. 推荐Windows 2000 with SP2 or later.编译器:ADS (Arm Developer Suite) v1.2 [Build 842]Perl解析:ActivePerl, 推荐使用ActivePerl 5.6.1版本仿真工具:MTK PC Simulator跟踪工具:Catcher_L1 v3.10.01,从串口输出调试信息,只做普通UI应用的话,大致不会用到,用PC仿真工具就好了烧录工具: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_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:\Program Files\ARM\ADSv1_2),解压过程中如果问到是否覆盖,全部选覆盖好了。

MTK入门相关知识总结

MTK入门相关知识总结

MTK编译过程1.1. 编写目的本文编写的目的主要是为了从整体上理解MTK的编译过程,以便能够较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。

1.2. 简介MTK的编译过程主要是在windows命令行下通过MakeFile文件来执行相应的perl脚本或c程序,将资源包生成c源程序,并与相应模块的c程序生成.o,.lib或.obj的中间代码,最终生成在手机上使用的.bin 文件和在模拟器上使用的mmiresource.dll资源文件。

1.3. 编译命令1.4. 编译相关的文件编译用到的文件主要放在make文件夹中。

各个文件的简要说明如下:1.5. 编译指令1、new功能:全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做。

在构建工程过程中,清除所有的目标文件,库文件,日志文件等。

New指令还会自动创建必要的目录、移除临时文件和中间脚本、更新日志文件。

过程简要说明:new->cleanall->sysgen->ckscatter->mmi_feature_check->asngen->codegen->asnregen->operator_check_lit->$(B TLD_BIN_FILE)->update。

依赖指令:new依赖的其他指令最多,其中包括cleanall,sysgen,ckscatter,mmi_feature_check,asngen,codegen,asnregen,operator_check_lite,update.用途:new指令是最彻底也是耗时最长的一个动作,一般得到一个新的MTK发布版本后由项目负责人要做一次。

使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs new。

2、update功能:update是重新更新整个工程的ARM版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明
MTK平台软件开发调试工具
使用说明
仅提示工具的基本操作流程
2014年08月
目录
一、体验准备 (3)
二、FlashTool软件下载 (4)
三、sscom32串口调试 (6)
四、Meta设备数据编辑 (7)
五、Catcher系统日志 (8)
一、体验准备
软件发布一般包括下面三个部分:
软件下载工具如下:
使用串口或者USB下载均需提前安装驱动,本文仅针对串口进行说明,先安装PL2303_Prolific_DriverInstaller_v1417.exe
二、FlashTool软件下载
设备关机后,通过串口线连接计算机,启动FlashT ool准备下载,界面如下:
软件下载进度如下:
3、说明
软件小改动,为方便调试,一般选择下载;若软件前后版本差异大,需要格式化升级,然后重新写入IMEI串号、配置参数。

三、sscom32串口调试
四、Meta设备数据编辑
在关机状态下操作设备内的参数,先关机连接计算机:
设备与Meta连接成功后界面如下:
五、Catcher系统日志
Catcher工具一般是在设备运行异常,需要分析软件bug时使用,该工具与前面串口调试工具冲突。

软件运行日志信息默认以设备UART1输出到串口,使用catcher之前,可以手动使用Meta修改日志输出模式,将信息输出到Catcher,也可使用指令自动完成。

按如下步骤将日志默认的串口输出改为catcher输出:
配置完成后不能再使用串口工具,按如下方法加载dataBase启动catcher:
配置端口:
查看日志信息:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四查看LOG与代码配置
波特率要在custom\common\Nvram_data_items.c(NVRAM_EF_PORT_SETTING_DEFAULT[])设置,其中包含LOG类型和波特率,其中dbg_print(…)部分是直接由串口0输出,类似于kal_prompt_trace (…)的是使用Catcher获得LOG的函数。

0为uart_port1输出,4为USB输出,99为禁止输出。

通常使用TST-PS、TST-L1,剩下根据需要设置。

4.1串口
默认的Bootloader的波特率是115200,死机时候的波特率是921600。

4.2Catcher
1 点击图示按钮
2 选择Database path
4 Configure port
5 选择串口
6 连接
7 过滤LOG
8 过滤LOG内容,暂时选择全部
五驱动移植
5.3 GPIO配置
《Driver_Customization_Tool.pdf》
5.4 背光
代码统一位于代码位于:
..\custom\drv\misc_drv\NEOTEL50_BU3_12864_11B_BB\uem_gpio.c
修改函数为:
kal_bool custom_cfg_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level )
5.4.1 LCD背光
按下HOME键,背光时间与KEY背光时间不一致,过长、闪。

这里闪是错误的,比按键时间长是对的。

LCD的背光控制可以有两方式,一个是PWM,一个是GPIO模拟PWN实现GPIO脉冲。

本项目中采用GPIO控制电路开关,PWM控制背光的形式:
……
switch(gpio_dev_type)
{
case GPIO_DEV_LED_MAINLCD:
……
GPIO_ModeSetup(gpio_led_mainbl_en_pin, 0);
GPIO_InitIO(1, gpio_led_mainbl_en_pin);
PWM3_level(gpio_dev_level);
if( gpio_dev_level == LED_LIGHT_LEVEL0)
{
kal_uint32 i;
DCL_HANDLE handle;
PMU_CTRL_BL_SET_EN val;
val.enable = DCL_FALSE;
GPIO_WriteIO(0, gpio_led_mainbl_en_pin);
handle = DclPMU_Open(DCL_PMU, FLAGS_NONE);
DclPMU_Control(handle, BL_SET_EN, (DCL_CTRL_DATA_T *)&val);
DclPMU_Close(handle);
}
else
{
DCL_HANDLE handle;
PMU_CTRL_BL_SET_LEVEL bl_level;
PMU_CTRL_BL_SET_EN val;
GPIO_WriteIO(1, 21);
handle = DclPMU_Open(DCL_PMU, FLAGS_NONE);
bl_level.blLevel = gpio_dev_level;
DclPMU_Control(handle, BL_SET_LEVEL, (DCL_CTRL_DATA_T *)&bl_level);
val.enable = DCL_TRUE;
DclPMU_Control(handle, BL_SET_EN, (DCL_CTRL_DATA_T *)&val);
DclPMU_Close(handle);
}
break;
……
}
……
注意:因为是跟原厂出的,所以基本代码结构不变。

5.4.2 KEY 背光
KEY的背光同LED有两种实现方式。

本项目中,键盘背光完全按照MTK的DEMO来设计的,所以驱动部分不用修改,但是应该调暗点(省电,不刺眼):
……
switch(gpio_dev_type)
{
……
case GPIO_DEV_LED_KEY:
//if (gpio_dev_level)
// gpio_dev_level = gpio_dev_level - 2;//在custom_hw_default.c中1-5的值都是一样的
PWM2_level(gpio_dev_level);//PWM驱动
……
break;
……
}
……
}
5.5 LCD驱动
LCD驱动目录位于..\custom\drv\LCD目录下。

在本项目中LCD使用的是MCU Interface, 8bit,
首先,修改xxxx_gprs.mak文件以支持当前LCD。

这里修改了MAIN_LCD_SIZE = 320X480,以及
COM_DEFS_FOR_NEOTEL50_BU3_12864_11B_LCM = ILI9486L COLOR_LCD NEOTEL50_BU3_12864_11B_LCM TFT_MAINLCD。

然后,修改LCD目录下的各个文件。

5.5.1 DEMO与本项目对比
5.5.2 使能LCD
包括LCD_INIT和BLOCK函数在内,都要从LCD厂商获取。

1、修改lcd_sw.h
LCD的总线宽度;
当前总线宽度下支持的位色。

2、修改lcd.c
修改INIT和BLOCK函数。

5.5.3 改进
修改LCD_CtrlWrite_ILI9486和LCD_DataWrite_ILI9486宏定义,使其支持18-bit/pixel
5.5.4 参考文档
《MTK详解LCD移植》————————————————————————————————百度文库《MTK平台驱动基本介绍》——————————————————————————————百度文库。

相关文档
最新文档