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(Mediatek Inc.)是台湾联发科技股份有限公司的一个子公司,是一家全球领先的半导体芯片设计公司。
MTK驱动(Mediatek Driver)是联发科技开发的一款设备驱动程序,用于支持和管理MTK系列芯片的硬件设备。
MTK驱动的目的是为了提供对MTK芯片的各种硬件设备的支持,使其能够在计算机系统中正常工作。
MTK芯片广泛用于智能手机、平板电脑、智能家居、物联网等领域的设备,而MTK驱动则起到了连接和协调计算机系统和硬件设备之间的桥梁作用。
1.提供设备识别和连接:MTK驱动可以识别MTK芯片的硬件设备,并与计算机系统进行连接,完成设备的初始化和配置工作。
2.实现设备通信和数据传输:MTK驱动通过与设备之间的通信接口,实现了设备和计算机之间的数据传输和交互,包括文件的读写、音视频的传输和图像的显示等。
3.支持设备管理和控制:MTK驱动可以对MTK芯片的硬件设备进行管理和控制,包括设备的开关、功能设置、驱动安装和升级等。
4.提供系统稳定性和兼容性:MTK驱动经过严格的测试和验证,能够保证在不同的计算机系统环境下的稳定性和兼容性,确保硬件设备能够正常工作。
5.支持开发者和用户的需求:MTK驱动提供了丰富的开发工具和接口,为开发者和用户提供定制化和个性化的驱动支持,方便二次开发和扩展。
2.连接设备和计算机:使用USB数据线或其他连接方式将MTK芯片的硬件设备连接到计算机上。
3.设置设备连接模式:根据设备的不同,选择合适的连接模式,如USB存储模式、USB调试模式等。
4.等待系统安装驱动:当设备连接到计算机后,操作系统会自动检测并安装相应的MTK驱动程序,期间需要等待一段时间。
5.使用设备:一旦驱动安装完成,设备就可以在计算机上正常工作,可以进行文件传输、数据交互、驱动管理等操作。
总之,MTK驱动是一款重要的软件工具,为MTK芯片的硬件设备提供了必要的支持和管理功能,使其能够在计算机系统中正常工作。
MTK基础知识
MTK基础知识MTK 业务指令表设置指令:*#66*#中文语言:*#0086# + send *#0413*# 元件信息查看版本:*#8375#软件版本:*#8882#测试:*#87#调试:*#8899# (?)默认语言:*#0000#+通话键设置英文:*#0044#+通话键繁体中文:*#0886#+通话键简体中文:*#0086#+通话键串号查询:*#06#原厂设置:*#66*#查看硬件版本:*#8375#查看LCD驱动版本:*#8376# 工厂指令:*#3646633#自动测试:*#87#软件版本:*#8882#*#035670766*001#*#035670766*002#有一些机器开机输入*#66*#不进测试的。
可以在开机瞬间,在按键灯亮和开机音乐响的时候快速按*#*#............*#就可进入测试*#99001# 进入黑匣子软件BUG功能,*#0413*# 元件信息*#6162*# 是查看内存指令在待机界面输入“ *#3646633# ”,选择“音频”,在这个菜单依次会看到正常、LoudSp Mode、Headset Mode等。
当前先以“正常”为例。
speech——通话听筒声音大小调整;Melody——音量0~音量6,铃声大小调节;16 level setting,mp3大小调整(注:MP3 共16个等级,其中,MAX为最高等级;STEP为相邻两个等级之间的音量差值;在melody下的音量0~6对应情景模式音量大小,16 level setting对应mp3声音大小)FM radio——调频广播大小调整;micophone——通话mic大小的调整(即通话时,听到的对方声音大小的调整)其余一般不会用到。
以上是正常模式,其他如:免提,耳机均可按此方法调整。
在所有项均调整好后,逐一按返回键退出(请注意:此时不要直接按挂机键,这样将无法保存调整过的数值),待出现提示“修改参数?”选择“是”。
MTK校准基本原理
APC校准步骤: APC的校准原理较为复杂,利用了较多的数学公式,不便于了 解,在这里将不做描述。 校准结果示例如下: APC Calibration Vset0.652969 Calibration ;功率等级9校 准后的VRAMP电压值为 0.652969V APC Calibration Vset0.462656 Calibration ;功率等级12校准后的VRAMP电压值为 0.462656V APC Calibration Vset0.315000 Calibration ;功率等级17校准后的VRAMP电压值为 0.315000V APC GSM DAC Value 61 ,68 ,78 ,89 ,104 ,120 ,140 ,166 ,196 ,233 ,280 ,340 ,414 ,483 ,564 ;校准后的 GSM功 率等级PCL19-PCL5对应的APC DAC值 GSM PCL 5 = 32.166050 OK,Max Limit:32.800000 Min Limit:31.700000 ;在GSM频段 APC校准完成后 对功率等级5进行测 量,判断手机在该功率等级时的发射功率是否在限值之内
META主界面
2G测接收路径损耗
【Band】=GSM900, 根据需要设置手机的接收频段 【ARFCN】=20,根据需要设置手机的接收信道 【PM/Frame】=1,测量的帧数,建议使用默认值1 【PM Count】=10,每帧测量的点数,建议使用默认值10 【Gain】=40,手机整个射频接收电路的增益值,建议设成40db 【Start】,按下该按钮则手机进入接收模式,并可以在白色文本框看到测量结果:
2 3
MTK校准工具说明
META工具的使用指引
2.1、工具介绍 META(Mobile Engineering Testing Architecture)是在MTK平台中用于测试、校 准、调试手机的一个开发工具,本文主要介绍 该工具的使用方法,方便生产测试和维修对手 机的射频性能进行调整以及故障的分析判断
MTK芯片功能介绍让你更加了解MTK
MTK 芯片功能介绍让你更加了解MTK联发科是全球IC设计领导厂商,专注于无线通讯及数位媒体等技术领域。
本公司提供的晶片整合系统解决方案,包含无线通讯、高解析度电视、光储存、DVD及蓝光等相关产品,市场上均居领导地位。
产品介绍:手机基频晶片组Baseband MT SeriesMT6223,MT6225,MT6226,MT6226M,MT6227,MT6228,MT6229,MT6230,MT6235,MT6238,MT6239,MT6253,MT6268,MT6516首先,MTK平台是一个广泛意义上的概念,是基础Nucleus OS的嵌入式操作系统。
同样的MTK平台的手机,却会有不同的功能,速度也会不一样,所支持的软件也会不一样,这一切都是因为芯片组的原因。
可以用WM系统来对比,WM相当于MTK,经常刷ROM的都应该知道WMROM的内核版本,比如23001,23004,23009之类的,因此MTK里的芯片组6227,6229,6235就类似于WM里的内核版本(只是举例,其实是有区别的)。
由于手机所采用的MTK芯片的不同,产生手机功能上的差异。
那么怎么才能知道自己手机的版本号呢?只要直接在你的手机键盘上输入*#66*#这几个字符(各机型有所不同),如果是MTK平台的手机,就会进入手机的工程界面。
这时候我们在“VERSION”也就是“版本信息”这个栏目,往下翻动,点击“BB CHIP”这一项,就会显示出主板的芯片型号。
从大的方面来说,MTK的芯片组有三种:第一种是电源芯片。
目前MTK有两种电源芯片,分别是MT6305和MT6318。
第二种是射频芯片。
目前所有MTK机型的射频芯片,都是使用MT6129和MT6139芯片来实现信号接收和发射。
第三种是CPU芯片,也叫做主控芯片。
而我们通常所说的MTK的芯片,指的就是CPU 芯片。
MT6205、MT6217、MT6218、MT6219、MT6225、MT6226、MT6227、MT6228均为基带芯片,所以芯片均采用ARM7的核。
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初学必须了解的知识点为何 0836 的6225 一开始没有信号?m12196.c 里面 power on 、power off 的动作只针对6205有写过实际代码,但是对6225 及其他平台没有相应代码,修改即可CTA 软件应该开关哪些功能?对于目前很多公司而言,不希望花费很多金钱和时间去测试GPRS 、蓝牙等相关协议;版本号对于测试来说,一定要是相同的,不能变化1、去掉 GPRS 相关的功能2、去掉蓝牙相关的功能3、增加 CTA 版本号,并保证其在测试前后总是一直的。
4、增加免费游戏5、SP功能全部去掉。
CTA 版本号应该怎样做?1、CTA 版本号的目的是为了保证手机在CTA送测期间,被查询到的版本号一致,而实际的版本号通过另外的方式可以查询到,所以生成了一个CTA版本号。
2、由于我们有一个硬件版本号查询的接口,目前就借用了这样一个接口,因此我们实际上只需要修改硬件版本号及其查询字串,就可以用作 CTA 版本号的查询了。
3、硬件版本号查询字串修改,需要找到SSC_HW_VERSION 进行修改即可,而版本号则在对应的 VERNO.BLD 里面修改即可如何添加一个自定义的世界时间地区,如越南胡志明市?找到 resource_world_clock_city.c 中与项目对应的数组const TimeZoneStruct TimeZoneData[]在其中添加世界时间的一项(位置无要求,程序会根据时区重新排序的):{时区,地名字串,地名字串缩写,地名字串,地名字串缩写,1} 其中时区可以上网查,比如北京为东8区就为 +8 西区为负数地名字串,地名字串缩写是自己添加字串资源地图X坐标,地图Y坐标为找到我们实际用的地图背景,对应的地名 x,y坐标即可,用windows自带的画图工具就可查出来最后一个参数照填就行如何开启trace?1、手机端设置a、用工程模式字串,开启工程模式b、进入【设备】->【Set UART】->【uart setting】c、设定【TST-PS Config】等于【UART 1】,【PS Config】等于【无】,[TST-L1 Config】等于【UART 1】d、确定后,则手机端设置完成2、PC端设置a、打开CATCHERb、【Config】->【Set Database Path】,选中与手机软件对应的db文件c、【Control】->【Mode】->【Logging】,允许trace记录d、【Config】->【Configuration RS232】, 选择合适的COM 端口e、【Control】->【Connect】,则可以开始tracef、【Control】->【Set Filter】,设置需要显示的过滤器为什么第一次开机的日期格式和默认回复出厂设置的日期格式不一致?第一次开机使用 DATE_FORMAT 对应NVRAM里的值:恢复出厂设置是使用RESTORE_DEFAULT_DATE_FORMAT对应NVRAM里的值;文件:Nvram_cust_pack.c(注意要修改相关的项目配置文件)对应关系如下:0-----DD-MMM-YYYY1-----DD/MM/YYYY2-----MM/DD/YYYY3-----YYYY/MM/DD4-----YYYY-MM-DD5-----MMM DD,YYYY默认开启UART为trace使用1、目前在主干上面已在GPRS.MAK里面增加相应的宏,按需要把下面的宏设为TRUE即可:# uart 默认为debug 使用UART_FOR_DEBUG_DEFAULT = FALSE#默认关闭TRACE,即FALSESIMTECH_DEBUG = FALSE2、如果不是当前主干,则可以在Nvram_common_config.c 里面,找到NVRAM_EF_PORT_SETTING_DEFAULT将默认端口调换一下顺序即可,即:把 99 修改为 0,0修改为99,注意只能修改端口相关的 0 和 99 如何修改工程模式启动字串?查找 SSC_ENGINEERING_MODE,并修改其定义即可真机工程为什么在模拟器上面编译不过?1、target可以通过。
mtk方案商
MTK方案商简介MTK(MediaTek)是一家总部位于台湾的全球领先的半导体解决方案供应商。
他们设计和生产智能手机、移动通信和多媒体技术的芯片。
MTK方案商是指以MTK芯片为基础,提供各种解决方案的企业。
MTK方案商的角色MTK芯片通常作为智能手机、平板电脑、物联网设备等产品的核心处理器。
MTK方案商充当了将MTK芯片集成到实际产品中的角色。
他们负责软件和硬件的开发、设计和合作,以提供定制化的解决方案。
MTK方案商需要深入了解MTK芯片的特性和功能,以便将其应用于各种产品。
MTK方案商通常与手机制造商、智能设备制造商以及各种软件开发公司合作。
他们的目标是设计和开发具有高性能、低功耗和稳定性的产品。
MTK方案商的工作内容芯片选型和集成作为MTK方案商,第一步是了解客户的需求,并根据其需求选择适合的MTK芯片。
MTK芯片种类繁多,有不同的功能和特性,如性能、功耗、多媒体性能等。
选择适合的芯片对产品的性能和功能至关重要。
一旦芯片选型确定,MTK方案商需要进行芯片集成。
这包括将芯片与其他硬件组件,如内存、存储器、摄像头等进行集成,以构建完整的产品。
软件开发MTK方案商需要进行软件开发,以提供定制化的解决方案。
他们需要为MTK芯片编写驱动程序,以确保芯片的正常运行。
此外,还需要开发各种应用程序和功能,以满足客户的需求。
硬件设计MTK方案商还负责硬件设计,包括电路板设计和封装设计。
他们需要确保电路板和封装符合产品的要求,并具备较高的可靠性和稳定性。
测试和验证完成芯片集成、软件开发和硬件设计后,MTK方案商需要进行测试和验证,以确保产品的性能和功能达到预期。
他们需要进行各种测试,如性能测试、功耗测试和稳定性测试,以验证产品的可靠性。
技术支持和售后服务MTK方案商还需要提供技术支持和售后服务。
他们需要协助客户解决产品中遇到的问题,并提供技术支持。
此外,他们还需要与MTK芯片原厂合作,获取最新的技术支持和更新。
mtk基础入门
MTK入门资料文档内容:-》MTK软件架构-》如何编译-》开发目录结构解析-》开发工具的了解-》程序入口,程序导读-》MMI的制作1. MTK软件构架参考文档:MT6218_SW_ReleaseNote.pdfMTK为MediaTek公司提供的GSM软件方案。
它包含5个部分:-》L1协议-》设备驱动-》协议栈-》MMI-》WAP应用MediaTek为用户提供3个工具:-》Catcher-》META-》MCTMTK软件架构图:下面3个部分组成该软件方案:1. MS Executable Software, which is the software running on the MS, includes the following modules- OS: Nucleus OS.- L1 Protocol Stack: GSM physical layer.- Drivers: device driver, like SIM, UART, GPIO, etc.- L2/L3 protocol stack: GSM protocol stack layer.- MMI: man-machine interface.- WAP: Wireless application protocol.- JAVA: J2ME Software2. The Mobile Engineering Testing Architecture, also known as META3. Catcher-》OSMediaTek采用Nucleus OS实时操作系统。
KAL OS层为MediaTek’s软件和Nucleus操作系统的接口。
它为任务提供许多系统服务函数,比如计时器,队列,内存管理,事件等等。
-》L1 Protocol StackThe physical layer or Layer 1 supports the transfer of bit streams on the radio medium according to the Technical Specifications of the 05-series. It provides service to upper layers and control the mapping and scheduling between the logical and physical channels. The TDMA framing and radio control parts are also implemented.。
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介绍
ATE
用于产线进行校准及终测
Audio Tuning Tool
用于音频调试
BROM DLL and DA Customization Kit BT Logger
flashtoolLib开发包和DA开发 包 抓bluetooth LOG,decode BT log的工具
Catcher
用于抓取MODEM LOG
用于手机基本硬件测试
DCC: SP_HWTestTool_Application_Note DCC: Android Tool and Production Line Solution_W1234.ppt [YUSU]SP Tool ALL-in-One introduction_v1.3.ppt 参考META部分;
ftrace: a.在工具包里有说明文档; b.FAQ:[FAQ04673] 如何抓取Ftrace; GAT: a.DCC:GAT_User_Guide(Customer).docx; b.FAQ:[FAQ06943] 如何用GAT抓取log; Oprofile: a.在工具包里有说明文档;
Driver Flash Tool
路线图
路线图
MT6572是联发科技新一代采用28纳米制程的芯片产品,基于Cortex-A7架 构,内建Mali-400图形处理器,MT6572也是联发科首个采用Mali-400 GPU 的智能手机芯片。MT6572拥有两个核芯,单个核芯的主频率1.3GHz,将推 出WCDMA版本,于2013年4月开始量产,第二季度未量产支持TD制式的 MT6572TD,而后是MT6572E,将支持EDGE网络。 MT6735:联发科首款4G全模芯片。搭载四颗64位ARM® Cortex®-A53处 理器核心。MT6735(M)均支持LTE CAT4,上行最高50Mps,下行150Mps, 原生支持FDD-LTE/TD-LTE/WCDMA/TD-SCDMA/CDMA(1x+EVDO)以及 GSM网络,真正意义上实现了全模网络支持。 MT6795整合了四颗Cortex-A57核心和四颗Cortex-A53核心,主频高达 2.2G,基于28nm工艺制程,芯片支持64bit,图形核心为PowerVR G6200系 列,MT6795支持双通道LPDDR3 933MHz内存以及PoP封装,支持 2560×1600分辨率显示屏,提供了双2000万像素ISP,支持 TDD/FDD LTE R9 Cat 4,并向下兼容WCDMA、TD-SCDMA以及EDGE网 络
MTK层的结构认识
MTK 中大部分有两个层构成,基层和背景层,其中待机的背景层为墙纸层在dm_layers中的顺序是背景在第0个,基层在第一个,但是创建的时候,是先创建基层,再创建背景层,因为在进入屏幕的时候,就已经创建了基层。
dm_layers记录层的handle,dm_layers_count为 DM层的当前个数,不能超过4,刷新的时墙纸层:dm_wallpaper_layer_idx 为墙纸层的索引ID,通过这个ID在dm_layers中找到墙纸层在 CustCoordinates.c中,设置了DM_WALL_PAPER属性的化,会通过 dm_setup_and_dr 来建立墙纸层,通过 dm_get_wallpaper_layer 来获取墙纸层,其中并没有设置一个全来保存墙纸层,而是通过ID来索引。
在 dm_setup_and_draw_wallpaper 中通过 mmi_phnset_check_themeid_wallpaper 判主题的话,采用 gdi_layer_create创建,否则用 gdi_layer_create_cf创建,并把创建让后通过 dm_layers[dm_layers_count] = dm_new_layers 把墙纸层放到dm_layers中然后dm_wallpaper_layer_idx = dm_layers_count - 1 ,记录墙纸层索引,之后通过普通背景层:g_dm_scr_bg_yer_handle 为背景层的 layer_handle在CustCoordinates.c中 ,设置了DM_SCR_BG 就会通过调用 dm_setup_and_draw_scr_通过 dm_layers[0] = g_dm_scr_bg_yer_handle 来设置dm_layers 与墙纸层有这个层也是要新建立的通过 gdi_layer_create(0, 0, UI_device_width, UI_device_height, &g_dm_scr_bg 建立层,让后通过 dm_draw_scr_bg_image 来画背景,通过 dm_get_current_scr_bg_分rotated_bkg_filler 或者 main_menu_bkg_filler 或者special_screen_bkg_fille 基础层:在DM中 通过DM_BASE_LAYER_START,进入dm_setup_base_layer调用 gdi_layer_get_base_handle(&dm_layers[dm_layers_count++]) 来获取基础层,注意这个地方并没有创建新层。
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平台基础记录
Nvram_cust_pack.c1. 修改mp3默认音量:FACTORY_RESTORE_DEFAULT_AUDPL Y_VOLUME2. 修改恢复出厂设置默认密码:kal_uint8 const NVRAM_EF_MS_SECURITY_DEFAULT[]{0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* phone_key */}Resource_shortcuts.cL131: 修改方向键进快捷方式菜单:gShctDefaultDediList[]Wgui_categories_idlescreen.cL1236: 修改idle界面背景播放mp3和FM时显示的歌词和频道名称的坐标:MMI_IDLE_EXTRA_YRes_MiscFramework.cL431: 无SIM卡和飞航模式下菜单结构:populateOptionMenu()Nvram_default_audio.c修改音频参数和FM增益:#define GAIN_NOR_GMI_VOL 3#define GAIN_NOR_GMI_VOL0 60#define GAIN_NOR_GMI_VOL1 80#define GAIN_NOR_GMI_VOL2 100#define GAIN_NOR_GMI_VOL3 120#define GAIN_NOR_GMI_VOL4 140#define GAIN_NOR_GMI_VOL5 160#define GAIN_NOR_GMI_VOL6 180短信同号删除功能宏:__MMI_MSG_DELETE_SAMENUMBER_SMS__Gdi_primitive.c:对特定区域图片进行透明度处理:gdi_effect_alpha_blending_rect_ex();FileManagerGprot.h:定义T卡驱动盘符L223: #define MMI_PUBLIC_DRV FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_V_NORMAL | FS_DRIVE_V_REMOV ABLE)Ctrl_buff_pool.hDefine: ctrl_buff_pool_sizeCustResDef.h定义进入工程模式指令:SSC_ENGINEERING_MODEBTMMICm.c修改蓝牙设备名称:U8 MMI_BT_DEF_HOST_BT_NAME[] = { 'M', 'T', 'K', 'B', 'T', 'D', 'E', 'V', 'I', 'C', 'E', '\0' }10A release修改蓝牙设备名称:NVRAM_EF_SRV_BT_CM_SYS_DEFAULT[]Usb_custom.c修改PC端USB设备名称:_align(4) const kal_uint8 INQUIRE_DATA[]Mmi_features_switchPLUTO.hIdle界面状态条与时间显示位置对调:CFG_MMI_UI_STA TUS_BAR_AT_BOTTOMCustom_wap_cust_pack.c (custom\common)主页书签修改:__SIMCOM_WAPBOOKMARK_DEFAULT__Custom_hw_default.c手机默认日期修改:const kal_uint8 DEFAULT_HARDWARE_YEAR = 8; const kal_uint8 DEFAULT_HARDWARE_MON = 1;const kal_uint8 DEFAULT_HARDWARE_DAY = 1;CustCoordinates.c (plutommi\customer\custresource) MATRIX菜单去掉title方法:const U8 category14_matrix[] ={// 5,//去掉TITLE4,DM_BASE_LAYER_START,DM_SCR_BG,//DM_TITLE1,//去掉TITLEDM_MATRIX_MENU1,DM_BUTTON_BAR1};const S16 coordinate_set14_Matrix[] ={DM_FULL_SCREEN_COORDINATE_FLAG,// 0, 0, MMI_TITLE_WIDTH, MMI_THIN_TITLE_HEIGHT, DM_NO_FLAGS, //去掉TITLE 更改坐标如下0, 0, MAIN_LCD_DEVICE_WIDTH, MAIN_LCD_DEVICE_HEIGHT - MMI_BUTTON_BAR_HEIGHT, DM_NO_FLAGS,0, MMI_THIN_TITLE_HEIGHT, MAIN_LCD_DEVICE_WIDTH, MAIN_LCD_DEVICE_HEIGHT - MMI_BUTTON_BAR_HEIGHT - MMI_THIN_TITLE_HEIGHT, DM_NO_FLAGS,DM_DEFAULT_BUTTON_BAR, DM_NO_FLAGS, MMI_SOFTKEY_WIDTH};Codegen一些MTK解决内存不足的一些方法:{SMS_PHONE_ENTRY = 200PHB_PHONE_ENTRY = 5001. 方法一:减小电话本的数量。
MTK 层的基础知识
1. gdi_layer_clear () ---- 将整个层刷成单一颜色(层激活后要立即执行)。
2. gdi_layer_set_source_key () ----- 将某一颜色设为层的通透色,在层合并的时候,系统会自动将层与通透色相同的颜色忽略掉(就是说这一点上看到的是底下层的颜色)gdi_layer_set_source_key(TRUE,GDI_COLOR_BLUE);3. gdi_layer_create(20,20,136,130, &my_layer);---- 用来创建层,其前四个参数指出层的位置及大小(位置是以实际屏幕左上角为原点的),最后一个参数时刚创建的层句柄地址,用以返回所创建的层。
(要注意一点的是,应为创建层时系统要为其分配动态内存空间,而系统保留的内存一般只够创建一个 UI_device_width * UI_device_height 大小的层,所以如果调用 gdi_layer_create 时内存不足系统就会 ASSERT 。
解决的办法是使用函数gdi_layer_create_using_outside_memeory, 即自己申请内存,然后作为参数传进去创建层。
)4. gdi_layer_set_active(my_layer);---- 任何时刻有且只能有一个层处于激活状态,所有的绘画函数都是默认画到这个层中(激活层中),所以想要在层上绘画必须先将其激活。
创建层并不会自动激活,需要手动将其激活。
不过,由于在多层的处理中需要在各个层之间切换激活,所以我们经常用到的是 gdi_layer_push_and_set_active(gdi_handle handle) ,此函数会把当前的激活层入栈而激活参数层,等到下次需要激活栈中的层时,只需要用函数gdi_layer_pop_and_restore_active() 激活就可以了。
5. gdi_layer_get_base_handle(&base_layer);---- 获取基础层gdi_layer_set_active(base_layer);// 主动将基础层还原为激活状态gui_BLT_double_buffer(0,0,UI_device_width -1, UI_device_height -1);6. gui_BLT_double_buffer ()---- 用来合并层,但在使用之前先得用gdi_layer_set_blt_layer(base_layer,my_laye,NULL,NULL); 指明是哪几个层需要合并,函数gui_BLT_double_buffer 能接受四个层句柄,也就是说我们系统同一时刻最多能合并四个层(当然创建的层可以不止这个数)。
mtk系统
mtk系统MTK系统:全面了解联发科技手机芯片的操作系统导言MTK(联发科技)是一家全球领先的半导体公司,专注于设计和制造先进的手机芯片。
MTK系统是联发科技基于Android操作系统进行定制和优化的操作系统。
本文将全面介绍MTK系统的特点、功能和应用领域。
第一部分:MTK系统简介1.1 MTK系统的背景信息MTK系统由联发科技独家开发,旨在为手机制造商提供高度定制化的操作系统解决方案。
随着智能手机市场的快速发展,MTK系统逐渐成为许多手机制造商的首选。
1.2 MTK系统的版本历史MTK系统的版本历史可以追溯到初始版本的发布。
每个新的版本都带来了更先进的功能和改进的性能,以满足不断变化的市场需求。
目前,最新版本是MTK系统X。
1.3 MTK系统的设计理念MTK系统的设计理念是为了提供更好的用户体验和更高的性能。
它采用了一系列先进的技术和算法,以确保系统的流畅性、稳定性和安全性。
第二部分:MTK系统的特点2.1 高度定制化MTK系统允许手机制造商根据自己的需求来定制系统的外观、功能和应用程序。
这使得不同品牌的手机在外观和用户体验方面可以有所区别,满足不同用户的需求。
2.2 高效节能MTK系统采用先进的功耗管理技术,能够最大程度地减少系统资源的消耗,从而延长手机的待机时间。
这使得手机用户在长时间未充电的情况下能够更长时间地使用手机。
2.3 系统优化MTK系统经过了精心优化,以提供更快的反应速度和更流畅的操作体验。
优化的部分包括系统加载时间、应用程序启动时间和切换应用程序的响应速度。
2.4 安全可靠MTK系统注重用户的隐私和数据安全。
它使用了一系列的安全机制,如数据加密、应用程序权限管理和安全启动等,以确保用户的信息不被非法获取或篡改。
第三部分:MTK系统的功能3.1 多任务处理MTK系统支持多任务处理,可以同时运行多个应用程序,确保用户能够快速地切换和访问不同的应用程序。
3.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新手教程
一、开发环境设立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),解压过程中如果问到是否覆盖,全部选覆盖好了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:USB下载时,需要安装MTK USB驱动,COM下载时,也需要安装COM通信设备 的驱动。
MTK Trace工具Catcher
用于分析和解决MTK死机问题的重要工具。一般配合build下的*.sym文件使用。 软件界面: 软件界面 使用方式:使用之前,手机必须数据工程模式的指令,打开手机的Trace端口。 使用方式 工程模式的指令可以在代码内部搜索SSC_ENGINEERING_MODE查找,找对其对 应的字符串输入手机即可。 输出信息:在编写代码的时候,使用kal_trace输出想要查看的信息,使用的方 输出信息 式类似printf函数。
MTK 基础培训
2011-10-13
MTK平台
MT6223 MT6225 MT6253 MT6252 MT6251 MT6235 MT6236
……
低中端
高端
不同的MTK平台之间的区别:CPU,内存,外设等硬件不同。
MTK版本
MTK的软件版本规则:分支 发布时间 分支+发布时间 分支
MTK分支版本(yyA|yyB)
模拟器编译
目的:用于编译可运行在PC上的手机模拟器。 编译工具:09B及以前的版本用VC6,10A及以后的版本VC2008。 编译方法: 首先需要在项目根目录运行make xxx gprs 来生成模拟的VC项目文件。然后打开 项目的VC工程文件,用VC进行编译。 项目文件的目录: 09B及以前的版本:Modis/Modis.dws 10A及以后的版本:Modis_VC9/Modis.sln
分布式编译
由于整个工程的编译时间比较长,一般单机编译需要2个小时左右,为了节省时 间,可以采用分布式编译。 分布式编译的软件:IncrediBuild 3.51。 目前我们支持分布式编译的编译器有VC6,VC2005和ADS,RVCT需要配置许可证, 暂时还不支持,所以用RVCT编译的时候,需要手动停止掉IncrediBuild的服务。
一些基本概念
语音合成(TTS):把文本转换成语音(Text To Speech) 语音识别(ASR):把语音转换成文本(Automatic Speech Recognition)
MTK编译
MTK编译分为两部分:手机BIN档文件编译和模拟器编译。
BIN档文件编译
目的:编译用于烧录到手机内部的二进制文件。 编译方法:在项目的根目录启动命令行程序,然后运行以下命令。 编译工具:09B及以前的版本用ADS,10A及以后的版本RVCT。 常用的编译命令 make xxx gprs new 用于修改了xxx.mak,option.mak等文件后的编译,会删除以前编译生成的所有文件, 然后重新生成。 make xxx gprs resgen 重新生成资源,用于修改菜单,字串,图片等资源后,不必 重新程,不过只编译最近修改过的文件,无修改的则不重 新编译。 make xxx gprs r mmi_app 编译工程内的某个模块,只编译模块中最近修改过的文 件,无修改的则不重新编译。
… 08B
09A
09B
10A
11A
11B …
MTK发布时间(yyww)
… 08xx
0932
0952
1032
1108
1132 …
版本信息查看make/Verno_xxx.bld文件。文件内容示例
MTK版本
VERNO = MAUI.10A.W10.32.MP.V22 HW_VER = ABCDEF35B_10A_HW BUILD = BUILD_NO BRANCH = 10A 分支:10A 10A 发布时间:2010年32周 不同分支之间的改动比较大,同一个分支不同时间发 布的版本主要是修一些bug,变化不大。 易炬对平台的适配主要由两个宏控制。
MTK下载BIN档
编译好的二进制文件如何才能在手机上运行了,我们首先需要把编译好的文件烧到 手机里面去才能运行。 烧写工具:FlashTools.exe
下载步骤 下载步骤
第一步:打开FlashTools.exe 第二步:选择Download Agent,一般为FlashTools所在的目录下的MTK_AllInOne_DA.bin 文件。 第三部:打开Scate文件,一般在项目的build/XXX下面,xxx为项目名称。 第四步:如果是一般的COM口下载,在option下先选择好下载的COM口,连接手机, 点击Download后按住开机键开始下载;如果是USB下载,在option选择选择USB Download后点击Download按钮,然后按住某个按键,最后连接手机。 第五步:下载完毕后,格式话手机,操作跟第四部一样,把Download按钮改为Format 就可以了。
MTK代码树简介
MTK代码树内包含大量文件夹和文件。不过和我们用到的不多,基本只有以下几 个文件夹。 make:用于配置编译的路径和文件。 Plutommi:mmi应用的源代码目录。 Build:编译产物目录 Modis/Modis_VC9:模拟器目录
几个比较重要的文件
Make/***.mak:整个项目的主make文件。 Make/Option.mak:整个项目的编译选项配置文件,主要是一些开关。