MTK_mmi_部分开机流程解析
MTK_MMI教程

如果没有找到图片文件,手机显示的时候是一个红色的* 添加图片时,注意路径用 4 杠
在 NVRam 中增加成员: 需要增加 ID,指出每块大小,以及总的块数 和缺省值。 每块大小最好为偶数。 修改下面的文件: Nvram_user_defs.h: ID, 大小,个数 NVRAMEnum.h Nvram_user_config.c custom_nvram_editor_data_item.h
添加源文件路径: plutommi.lis 添加完毕,这些文件就可参与编译了。
添加开关: 开关真是个好东西。依靠它,可以将没有价值的功能瞬间屏蔽,又可以将我们需要但又搁置的功能瞬间启 用。能者上,不能者下,多么类似于社会法则。 添加开关 在 make 文件夹下面的 .mak 文件里面。 注意事项: 有人喜欢模仿 MTK 原做法,在 .mak 文件里面使用一个开关管住另外一个开关。那么两个开关不要同名, 否则开关起不了关闭的作用。
编译后,在 plutommi\Customer\CustResource 下面 会生成新的 CustStrMap.c 和 CustStrRes.c 这两个文件中就包含了新增的 string 资源
添加图片: 1. GlobalDefs.h 中增加 ID 2. population.c 中将 ID 和 string 关联 3. 增加图片到解压后的包里,增加完毕,应打包。plutommi\Customer\Images\PLUTO176X220
录下的文件都是 Res_*.*文件,是各个 AP 或模块的资源配置文件,包含菜单、图片、 字符串资源的配置; 注意: Cust*.*文件是资源编译生成的,不能手动修改。 2). 编译方法: 进入..\plutommi\Customer 目录,执行 remakeResource.bat 批处理文件。 编译成功会生成一些 Cust*.*文件在\plutommi\Customer\CustResource 目录下,编译代码时再编译这些文件; 编译失败到 build 目录下查看 log 文件à res_gen.txt,可看到出错信息。 3). 当我们改变了资源,想在 PC 模拟上看到修改效果时,也需要先执行Байду номын сангаас上的资源编译命令, 再在 VC 环境下 build 一下资源,就可以看到效果了。 2. 代码的编译: 有如下的编译命令: make custom=xxx gprs new make custom=xxx gprs update
MTK手机维修指导

MTK平台手机维修指导Ver. 03目录1. MTK手机工作原理1.1 主板原理1.2 整机供电及开机过程1.3 射频电路1.3.1射频部分原理框图1.3.2 电路分析1.4音频电路1.5时钟电路2. 芯片介绍3. 故障与维修3.1 D/L 站3.2 S/N站3.3 BT 站3.3.1 <256> APC Fail3.3.2 <255> Path Loss Calibration Fail3.3.3 <254>AFC Fail3.3.4 <257> ADC Fail3.4 FT 站3.4.1 开关谱(切换瞬态频谱)问题3.4.2 建立呼叫失败3.5 整机测试1. 显示问题:2. 无回音3. 开机没有声音4. 无振动:5. 键盘灯不亮6. 检测不到SIM卡7. 按键无功8. 功率低9. 其他功能测试故障4. 总结1 MTK手机工作原理MTK方案,基带平台由MT6218BT和MT6305N组成,它的RF平台使用MT6129N芯片和RF3416功率放大器。
1.1 主板原理框图M3手机电路从功能上分为电源管理、存储器、CPU、键盘、LCD 模块、音频电路、射频电路等几个部分。
见图1。
图1 主板原理框图1.2 整机供电及开机过程整机供电主要由电源模块U400提供。
1.2.1、电池电量检测电路电池电量检测电路主要由U401及其周围电阻组成,由电阻R433,R432,R432,R434,R400,R403等组成分压电路,电池电压的取样由电阻R432,R433进行,如果电池电压偏低,取样电压也会变低,这时U100会发出低电告警音,当电池电压VBATT低于1.5V时,则手机无法开机。
1.2.2. 电源模块供电电路(1)逻辑供电①VDD,供中央处理器U100,FLAHS U502.②VCORE 1.2V,供中央处理器U100使用③VRTC: 2.8V,为表时钟提供电压。
MTK modem配置方法详细解说

准备工作:原理图,所用2G开关,4G PA,通路小开关的规格书,PA厂提供对应PA的TPC表格原始Modem如下以6739的一个项目为例; 平台:MT6739 2G开关:VC7916 4G PA:VC7643 分集开关:MXD8680❖配置mml1_rf文件夹1,拿到Modem首先在mml1_rf文件夹中找到mml1_custom_mipi.h文件打开2,在文件中找到如图3中那一段来设定器件的USID,如果两个PA没挂在同一mipi线上直接可以用MTK默认就可以3,这样mml1_rf这个文件夹就OK了❖配置el1_rf文件夹1,打开el1_rf文件夹,找到lte_custom_rf.h(39平台的文件放在Toolgen文件夹里面)配置频段信息;TX端口;RX;通路开关逻辑.开关逻辑以B1为例:通过原理图看到B1连接的8680开关的RF8脚,开关的V3,V2,V1分别连接的BPI_BUS6,BPI_BUS7,BPI_BUS8,通过查看8680开关的规格书得到RF8的逻辑是V1=1,V2=1,V3=1计算出来的二进制是111000000换算16进制是1C0,所以如上图B1的逻辑配置是0X000001C0;其它频段配置同理;到这里lte_custom_rf.h文件配置完成2,打开lte_custom_mipi.c文件配置RX EVENT; TX EVENT; RX DATA; TX DATA; TPC.RX EVENT配置,如图1 BAND1 RX通路上的没有开关所以开和关都只用了1个步骤,所以RX ON配置是(0,0)RX OFF是(1,1); 图2 BAND40 RX 通路除了2G开关外,还经过了4G PA的内部开关,所以B40 的RX开关步骤比较多: (0,0)=2G开关ON, (1,1)=4G PA内部开关ON, (2,2)2G 开关OFF, (3,3)4G PA内部开关OFFRX DATA配置,RX DATA配置的步骤要用上面RX EVENT的步骤要一致;如图1是BAND的RX DATA. 图1 中的2G 开关ON,配置成0X18这个值是从原理图连接的端口和VC7916的规格书中得到图2 B40 的两配置的两个值0X02,和0X0D分别是从2G开关和4G PA的规格书中得到TX EVENT配置,如图1 的BAND 1 PA ON要三个步骤所以配置是(0,3); PA OFF 1个步骤配置是(4,4); 2G开关ON(5,5) 其它频段,同理配置就OKTX DATA配置, TX DATA的配置要和上面TX EVENT的步骤要对应得上;如上图步骤详解:0X00步骤配置为0X64,意思是配置PA的使用路径,B1连接的是MB4,通过PA规格书计算出来是64, 0X01步骤配置为(0X00)是PA 隔离的意思;0X02配置为(0XD0)是从规格书的0X02地址配置得到,意思是PA发射,如图第三步骤0X03配置为(0X00)也是为了隔离;第四步骤0X04配置为(0X00)意思为关闭PA,第五步骤0X05 配置为(0X18)意思是打开2G开关,从2G开关规格书得到这个值,如图注意:B39如果走的是2G 开关的通道,要在lte_custom_rf_tpc.h文件里面把PA模式设置为VPA_SOURCE_HW_VAPCB39走2G开关步骤详解:0X0 PA路径配置为(0X0F),这个值从2G开关规格书中得到,如图; 0X01这一步骤为PA的偏置电压,配置为0X88,是延用了SKY PA的配置,没有问题可以不用修改;TPC的配置, 以B1为例:0X0这一例配置为0X64对应的是B1 DATA路径上配置的0X64; 0X1这一例配置的值从PA规格书中的TPC表格得到,如图; 其它频段同理配置就可,到这里el1_rf 这个文件夹就配置OK了.❖ul1_rf文件夹配置1,打开ul1_rf文件夹,找到ul1d_custom_rf.h文件配置RX端口, TX端口,频段信息,BPI逻辑等.2,ul1d_custom_mipi.c配置,这个文件配置和LTE的是同理,也是要配置RX EVENT, TX EVENT, RX DATA, TX DATA, TPC这几项. RX EVENT,RX DATA,TX EVENT,TX DATA,TPC配置,如图配置的TPC是延用的SKY的TPC表,0X00配置为(0X64)表示PA路径,0X02配置为(0XD0)表示PA发射,同LET一样; 0X01和0X03配置如8功率等级配置为(0X77)和(0X88),这两个值可以从SKY的TPC配置表中得到,如图表格,其它功等级的TPC如表格类推就可! 至此ul1_rf文件夹配置完成!❖l1_rf文件夹配置1,打开l1_rf找到m12193.c文件,配置频段信息;2,l1d_custom_rf.h配置,在这个文件中配置RX端口, BPI逻辑;TX端口不用配置,在后面的l1d_custom_mipi.c文件定义就OK RX端口配置,BPI逻辑配置,3,l1d_custom_mipi.c配置,这个文件同样是要配置RX EVENT, TXEVENT, RX DATA, TX DATA, 和TPCRX EVENT,RX DATA,TX EVENT,TX DATA,DATA步骤详解:0X1C配置为(0X38)表示器件初始化; 0X00配置为(0X06)表示器件隔离,开关规格书上得到; 0X01配置为(0X86)表示TX偏置电压,从规格书中得到; 0X00配置为(GGE_MIPI_PA_G8)表示调制模式,不可修改; 0X1C配置为(0XB8)表示PA关闭TPC配置,TPC配置从规格书中得到值,如图到这里l1_rf文件夹配置完成.❖tl1_rf文件夹配置1,tl1d_custom_rf.h配置,这个文件主要配置,控制电压模式,RX 端口, TX端口,控制电压模式,2,tl1d_custom_mipi.h配置,这个文件主要配置,ASM和PA的USID, RX DATA, TX DATA, ASM和PA USIDRX DATA,RX ON配置为0X1C是从原理图上得到连接的是TRX12端口,规格书上0X1C,如图TX DATA,TX ON配置为(PA_FLAG_SetDefault)表示设置为默认值,调用下面的TPC参数.PA TPC,如图步骤详解:0X00配置为(0X0F)表示PA发射; 0X01配置为(0XF7)是表示PA偏置电压,根据实测值微调;高中低三段配置一样就行,到这里TDS部分就配置完成!❖cl1_rf文件夹配置1,c2k_custom_rf.h文件配置,这个文件主要配置,频段信息, RX 端口, TX端口, BPI逻辑现在新的MTK方案CDMA都是共用的FDD BAND5通道频段信息,RX 端口2,c2k_custom_mipi.c配置,这个文件要配置RX EVENT, TX EVENT, RX DATA, TX DATA,TPC RX EVENTRX DATARX DATA 详解,0X1C配置为(0X38)表示器件初始化,一般器件初始化都是0X380X00配置为(0X05)表示RX ON,这个值从2G开关规格书得到0X00配置为(0X00)表示PA 待命, 0X1C配置为(0XB8)表示器件关闭TX EVENTTX DATATX DATA步骤详解:0X1C配置为(0X38)表示器件初始化; 0X00配置为(0X3C)表示PA路径如图2; 0X01配置为(0X00)表示空闲待命状态; 0X02配置为(0X50)表示PA ON 如图3; 0X03配置为(0X00)表示空闲待命; 0X00配置为(0X00)表示PA OFF0X1C配置为(0X38)表示器件初始化; 0X00配置为(0X05)表示2G开关ON 如图4;TPC配置TPC的配置延用了SKY的TPC表格,只需要配置1和3寄存器就可,如图1; EVDO和TPC配置的1X一样就可,如图2到这里cl1_rf文件夹就配置完成了!。
MTK系统启动

MTK系统启动流程启动流程图:一 BootRom系统开机,最先执行的是固化在芯片内部的bootrom,其作用比较简单,主要有a.初始化ISRAM和EMMCb.当系统全擦后,也会配置USB,用来仿真USB端口下载镜像。
c.从EMMC中加载preloader到ISRAM中执行。
二 Preloaderpreloader用来初始化外设,配置软件执行环境。
Preloader执行之前,外部Memory没有初始化,故Preloader在内部ISRAM中执行的,其会初始化外部Memory,这样以后的镜像数据就可以加载到外部Memory中来执行。
同时preloader还会初始化UART用来调试,进行META模式握手,配置USB用来下载镜像数据,查找PMT分区表,最后会根据PMT表从EMMC中加载lk/uboot到Memory中来执行。
我们系统有个PMT表,这个是个总的分区表,每个分区数据都可以从这个表中找到。
第一列是该分区起始地址,第二列是该分区占用多少个block,第三列是分区名字。
[0x0000000000000000-0x0000000000ffffff] ( 32768 blocks): "PRELOADER"[0x0000000001000000-0x000000000107ffff] ( 1024 blocks): "MBR" [0x0000000001080000-0x00000000010fffff] ( 1024 blocks): "EBR1" [0x0000000001100000-0x00000000013fffff] ( 6144 blocks): "PRO_INFO" [0x0000000001400000-0x00000000018fffff] ( 10240 blocks): "NVRAM" [0x0000000001900000-0x00000000022fffff] ( 20480 blocks): "PROTECT_F"[0x0000000002300000-0x0000000002cfffff] ( 20480 blocks): "PROTECT_S"[0x0000000002d00000-0x0000000002d1ffff] ( 256 blocks): "SECURE"[0x0000000002d20000-0x0000000002d7ffff] ( 768 blocks): "UBOOT" [0x0000000002d80000-0x000000000417ffff] ( 40960 blocks): "BOOTIMG" [0x0000000004180000-0x000000000557ffff] ( 40960 blocks): "RECOVERY" [0x0000000005580000-0x0000000005b7ffff] ( 12288 blocks): "SECSTATIC" [0x0000000005b80000-0x0000000005bfffff] ( 1024 blocks): "MISC"[0x0000000005c00000-0x0000000005efffff] ( 6144 blocks): "LOGO" [0x0000000005f00000-0x0000000005f7ffff] ( 1024 blocks): "EBR2" [0x0000000005f80000-0x0000000031b7ffff]( 1433600 blocks): "CUSTPACK" [0x0000000031b80000-0x000000003237ffff] ( 16384 blocks): "MOBILE_INFO" [0x0000000032380000-0x0000000032d7ffff] ( 20480 blocks): "APANIC"[0x0000000032d80000-0x000000005537ffff] ( 1126400 blocks): "ANDSYSIMG"[0x0000000055380000-0x0000000061b7ffff] ( 409600 blocks): "CACHE"[0x0000000061b80000-0x00000000a1b7ffff] ( 2097152 blocks): "USER"三 LK(little kernel)lk最主要的工作就是加载kernel和ramdisk,然后跳转到kernel中去执行。
MTK的驱动和MMI经验总结

MTK的驱动和MMI经验总结1.Windows必须安装在C盘,否则会出现modis编译问题。
2.语言和输入法移植2.1资源修改–这是我们需要修改的,2.2开始MTK已经帮你做好了。
2.1.1在mcu\plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加新语言的字符串资源。
2.1.2用MCT工具生成新的字库,需要注意的是Language ID必须和ref_list.txt中一致。
2.1.3输入法资源包括Zi、T9和CStar。
2.1.3.1Zia.新建mcu\vendor\inputmethod\ZI\project\PROJECTNAME\v?_official\目录。
b.将第三方提供的Zi文件拷贝到该目录。
c.将所有ZI8DatXX.c文件扩展名改成.h文件,并将其包含到IMEResZi.h中。
d.将输入资源添加到mtk_gIMELDBArray 数组中。
e.上面步骤,第三方可能已经提供IMEResZi.h文件。
如果提供了就不用这些步骤了。
2.1.3.2T9将代码放到下面目录:mcu\vendor\inputmethod\T9\project\PROJECTNAME\v?_official\移植比较麻烦,具体参考:SOP_T9_Input_Method_Resource_Generation_07A.pdfSOP_T9_Input_Method_Resource_Generation_08B.pdfSOP_T9_Input_Method_Resource_Generation_09BV2.pdf2.1.3.3CStar不说了2.2SSC有几个文件需要修改。
a.mcu\ \plutommi\mmi\SSC\SSCInc\SSCStringHandle.h:增加新的SSC码,需要和ref_list.txt、FontRes.c中的一致。
#define SSC_AUTO "*#0000#"#define SSC_SCHINESE "*#0086#"#define SSC_TCHINESE "*#0886#"#define SSC_ENGLISH "*#0044#"#define SSC_DEFAULT "*#0044#"#define SSC_SPANISH "*#0034#"//添加你的SSC码//#define SSC_XXXXX "*#00XX#"2.3mcu\ \plutommi\mmi\SSC\SSCInc\SSCStringHandle.c:将新的SSC码加入到ssc_table2表中。
MTK_IMEI使用说明

MTK_IMEI工具使用说明该IMEI工具启动后,在主界面上方从左至右有三个下拉框可供设置,左边的Port可以设置写IMEI时所使用的串口。
中间的是设置写IMEI的方式,一种为META模式,需要database文件,该文件必须与手机软件一一对应;另一种为AT模式,不需要database文件。
默认为AT模式,可以写所有MTK的手机。
右边为选择写双卡双待手机的IMEI号码,单卡和双卡单待请选择IMEI1,因为这些手机只有一个IMEI号码,选其他会出错。
双卡双待手机可选的有IMEI1;IMEI2;IMEI1&IMEI2;IMEI1=IMEI2。
不同的选择会有不同的效果:●IMEI1:写单待手机的IMEI或者只写双待手机的第一个IMEI号码。
●IMEI2:只写双待手机的第二个IMEI号码。
●IMEI1&IMEI2:写双待手机的两个IMEI号码,需要输入两个IMEI号码。
先输入第一个IMEI号码,然后再输入第二个IMEI号码,程序将两个IMEI写入手机。
●IMEI1=IMEI2:写双待手机的两个IMEI号码,但是只需要写输入一个IMEI号码,程序将两个IMEI号码设置为相同,然后写入手机。
注意:当双待手机写入的两个IMEI相同时,则在*#06#界面只会显示一个IMEI号码。
当两个IMEI不同时,才会显示两个不同的IMEI号码。
单待手机请在Dual IMEI选择IMEI1,双待手机如果需要显示两个不同的IMEI,选择“IMEI1&IMEI2”,并在写IMEI时输入两个不同的IMEI,这样手机会显示两个不同的IMEI。
双待手机如果只需要显示一个IMEI,请选择“IMEI1=IMEI2”,这样写IMEI时只需要输入一个IMEI并且手机只会显示一个IMEI。
1.工具启动后主界面如下:启动后默认为AT模式。
2.请选择串口。
3.选择模式,默认为AT模式,选择META模式后如图:4.选择database文件。
MTK_平台开机流程应用指南

Revision: 1.0Preliminary (Released) InformationDocument Number:Power-On Procedure Application NoteMTK 平台开机流程应用指南MediaTekLegal DisclaimerBY OPENING OR USING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (“MEDIATEK SOFTWARE”) RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON AN “AS-IS” BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER’S SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF LAWS PRINCIPLES.Revision HistoryRevision Date (mm/dd/yyyy) Author Comments 1.0 03/31/2006 李素娜Initial versionTable of ContentsLegal Disclaimer (2)Revision History (3)Table of Contents (4)1.开机方式及硬件实现方法 (5)1.1正常开关机 (5)1.2充电开机 (6)1.3闹钟开机 (7)1.4开机debug流程图如下: (8)2.常见问题分析与解答 (9)1. 开机方式及硬件实现方法1.1 正常开关机手机开机硬件电路图正常开机过程开机过程:按下power key 后,二极管导通,PWRKEY检测到低电平,驱动PMIC打开LDOs,之后PMIC使BB复位,随之BB起来进入软件开机程序,完成开机,按power key关机时,首先执行软件关机程序,随后复位及LDOs也被关闭,完成关机。
MTK camera上电流程分析

MTK camera上电流程分析上电相关文件:Mediatek/custom/vanzo89_wet_jb2/kernel/camera/camera/kd_camera_hw.cMediatek/custom/vanzo89_wet_jb2/kernel/camera/camera/kd_camera_hw.hMediate/custom/common/kernel/imgsensor/src/kd_sensorlist.cMediate/custom/common/kernel/imgsensor/src/kd_sensorlist.h注:本文档以mt89_v10_vanzo_test项目为例MTK开机过程中会去检查当前项目(手机上烧录的当前软件)所有在Projectconfig.mk中配置过的camera sensor,如下:CUSTOM_HAL_IMGSENSOR=imx111_mipi_raw ov9724_mipi_rawCUSTOM_KERNEL_IMGSENSOR=imx111_mipi_raw ov9724_mipi_raw也就是说在开机的时候,系统会自动去detect这两颗camera sensor是否都能正常通信,主要是通过读sensor的id来判断的。
具体是调用下面的函数来开始检查之旅的:==========mediate/custom/common/kernel/imgsensor/src/kd_sensorlist.c================这个函数先是调用kdGetSensorInitFuncList(&pSensorList)获取系统配置的kdSensorList [],这个数组在mediatek/custom/common/kernel/imgsensor/src/kd_sensorlist.h中定义的,该数组也是我们加入新的型号sensor时需要改动的一个地方,如果你不把你新加入的sensor放进这个数组,系统也不会知道你配置过这个sensor。
MTK MMI 介绍

常用编译指令介绍
编译经常出错的几种情况:
• Code和link出错。 • 编译环境出错。
软件MMI框架简单介绍
• MTK 常用概念介绍 • 软件分布路径的介绍 • MTK 模拟器介绍
软件MMI框架简单介绍
MTK 常用概念介绍: 请参考MTK的MMI培训文档 MMI_Training.pdf
软件MMI框架简单介绍
配置编译环境介绍
需要安装的第三方软.0
配置编译环境介绍
配置编译环境的几种情况:
• 第一次配置mtk提供的原始版本。 • 第二次配置mtk版本。 • 如何检测编译环境是否正常。
常用编译指令介绍
常用指令介绍:
• • • • new update。 Remake 编译资源指令ResGenerator.bat
mtkmmi介绍模块事业部目录?配置编译环境介绍?常用编译指令介绍?软件mmi框架简单介绍?mtk平台中迅速查找函数入口的常用方法?系统中添加一个模块和菜单举例介绍?几个常用的工具介绍配置编译环境介绍需要安装的第三方软件
MTK MMi 介绍
模块事业部
目录
• • • • • • 配置编译环境介绍 常用编译指令介绍 软件MMI框架简单介绍 mtk平台中迅速查找函数入口的常用方法 系统中添加一个模块和菜单举例介绍 几个常用的工具介绍
• THANKS! • 有问题可以mail: chuixi.zeng@ • 3425分机
软件分布路径的介绍: 见source code.
软件MMI框架简单介绍
MTK 框架介绍:
mtk平台中迅速查找函数入口的常用 方法
• 通过菜单的string来查找函数入口 • 通过模拟器的断点跟踪
添加一个模块和菜单举例介绍
MTK系统解析

MTK系统解析——参考08AW0840MP_TECHFAITH25_08A_PMWY_V1_gprs_MMI1 编译环境 (3)2 Simulator生成和使用 (5)3 MTK开机流程 (5)4 EMI配置(Flash,RAM等) (9)5 消息机制 (12)6 如何添加新的应用(如:Task) (13)7 Trace (13)8 MTK异常处理 (13)9 PC工具 (13)10 Timer (13)1.编译环境MTK环境搭建步骤A)、MTK在Cygwin下不允许有sh.exe(当然也可以不装Cygwin)。
更准确的说,只要Dos 的环境变量PATH中没有sh.exe就可以了。
B)、MTK的ADS需要装到C:\Program File\ARM\ADS1_2下,也可以直接Copy NXP系统安装的C:\ ARM\ADSv1_2 到C:\Program File\ARM\ADS1_2。
C)、ADS安装完后需要经过升级,请参考《dragonfly编译环境的搭建以及编译方法.doc》说明,或者直接通过工具——ads12_latest_windows_patch.exe产生的Bin替换ADS1_2下的Bin文件夹进行升级。
D)、必须安装的软件参考《SOP_Third_Party_Package_Installation_20080403.pdf》,软件要按照步骤安装,因为GCC部分的更新有文件替换的动作。
E)、还必须安装——ActivePerl-5.6.1.626-MSWin32-x86-multi-thread.msi用于运行Perl 脚本。
F)、系统必须安装Excel,并且在编译的时候不要运行Excel。
G)、环境搭建完成调用工程Tools下的chk_env.exe去查看环境是否设置OK。
H)、Tools下的Make的版本号更新到3.81,版本号可以通过make –v指令查看。
Make-3.81的版本推荐不要按照文档描述的地址下载,目前网络上Make同版本还是有差异。
MMI检验作业指导书

文件编号版本V1.1页 码序号检验项目检验步骤检验比例 测试方法 图示1100%2100%3100%简易流程:开机-触摸测试-待机界面检查-进入工程模式测试-蓝牙测试-收音测试-T-F卡、MP3/MP4测试-摄像测试-拔号测试-充电测试-USB检测-关机取卡开机检查将T-F卡与SIM 卡装入PCBA,放入接入4V电源的夹具中并开机检查T卡能否正常插入,PCBA上的元器件能否碰到测试夹具上,按开机键开机是否能正常工作,铃声是否正常,并观察电流在0.30A以内跳动,查看按键灯是否与BOM单上的发光二极管要求的颜色一致,有无按键灯不亮、灯暗等不良现象,(SIM卡包含移动及联通的卡)。
检查画面是否清晰,SIM卡是否有效识别及各信号指示条是否正常,屏幕上是否显示"中国移动(CMCC)和“中国联通”(GU-GSM),如显示请插入SIM卡1/2(Insert SIM1/2),则可判定主板为不识SIM卡;触摸测试触摸屏校准开机后显示触摸校准,点击进行测试,确认是否能进行校准。
序号检验项目检验步骤检验比例待机界面开机后待机界面测试方法图示第 1页,共 4 页适用机型MTK平台机型TXHSMTMMMI01文件编号版本V1.1页 码第 1页,共 4 页适用机型MTK平台机型TXHSMTMMMI014100%5100%6100%7100%8100%9100%听筒测试受话测试(Receiver)序号检验项目检验步骤检验比例测试方法图示软件版本确认(Version)进入工程模式,检查此块PCBA下载的软件版本是否与生产任务通知单上的软件版本一致。
检查Serial No:是否为MT0123456789,若是则说明未过Calibration,需返回上道工序重新测试。
回音测试(EchoLoop)1、进入工程模式,不插入耳机,吹夹具上的麦克风,听夹具上的听筒是否有吹气声的回音吹气检测按键测试(Keypad)进入工程模式,检查按键功能是否正常,有无按键无作用、功能错等现象。
MTKmodem配置方法详细解说

MTKmodem配置⽅法详细解说准备⼯作:原理图,所⽤2G开关,4G PA,通路⼩开关的规格书,PA⼚提供对应PA的TPC表格原始Modem如下以6739的⼀个项⽬为例; 平台:MT6739 2G开关:VC7916 4G PA:VC7643 分集开关:MXD8680配置mml1_rf⽂件夹1,拿到Modem⾸先在mml1_rf⽂件夹中找到mml1_custom_mipi.h⽂件打开2,在⽂件中找到如图3中那⼀段来设定器件的USID,如果两个PA没挂在同⼀mipi线上直接可以⽤MTK默认就可以3,这样mml1_rf 这个⽂件夹就OK了配置el1_rf⽂件夹1,打开el1_rf⽂件夹,找到lte_custom_rf.h(39平台的⽂件放在Toolgen⽂件夹⾥⾯)配置频段信息;TX端⼝;RX;通路开关逻辑.开关逻辑以B1为例:通过原理图看到B1连接的8680开关的RF8脚,开关的V3,V2,V1分别连接的BPI_BUS6,BPI_BUS7,BPI_BUS8,通过查看8680开关的规格书得到RF8的逻辑是V1=1,V2=1,V3=1计算出来的⼆进制是111000000换算16进制是1C0,所以如上图B1的逻辑配置是0X000001C0;其它频段配置同理;到这⾥lte_custom_rf.h⽂件配置完成2,打开lte_custom_mipi.c⽂件配置RX EVENT; TX EVENT; RX DATA; TX DATA; TPC.RX EVENT配置,如图1 BAND1 RX通路上的没有开关所以开和关都只⽤了1个步骤,所以RX ON配置是(0,0)RX OFF是(1,1); 图2 BAND40 RX 通路除了2G开关外,还经过了4G PA的内部开关,所以B40 的RX开关步骤⽐较多: (0,0)=2G开关ON, (1,1)=4G PA内部开关ON, (2,2)2G 开关OFF, (3,3)4G PA内部开关OFFRX DATA配置,RX DATA配置的步骤要⽤上⾯RX EVENT的步骤要⼀致;如图1是BAND的RX DATA.图1 中的2G 开关ON,配置成0X18这个值是从原理图连接的端⼝和VC7916的规格书中得到图2 B40 的两配置的两个值0X02,和0X0D分别是从2G开关和4G PA的规格书中得到TX EVENT配置,如图1 的BAND 1 PA ON要三个步骤所以配置是(0,3); PA OFF 1个步骤配置是(4,4); 2G开关ON(5,5) 其它频段,同理配置就OKTX DATA配置, TX DATA的配置要和上⾯TX EVENT的步骤要对应得上;如上图步骤详解:0X00步骤配置为0X64,意思是配置PA的使⽤路径,B1连接的是MB4,通过PA规格书计算出来是64,0X01步骤配置为(0X00)是PA 隔离的意思;0X02配置为(0XD0)是从规格书的0X02地址配置得到,意思是PA发射,如图第三步骤0X03配置为(0X00)也是为了隔离;第四步骤0X04配置为(0X00)意思为关闭PA,第五步骤0X05 配置为(0X18)意思是打开2G开关,从2G开关规格书得到这个值,如图注意:B39如果⾛的是2G 开关的通道,要在lte_custom_rf_tpc.h⽂件⾥⾯把PA模式设置为VPA_SOURCE_HW_VAPCB39⾛2G开关步骤详解:0X0 PA路径配置为(0X0F),这个值从2G开关规格书中得到,如图; 0X01这⼀步骤为PA的偏置电压,配置为0X88,是延⽤了SKY PA的配置,没有问题可以不⽤修改;TPC的配置, 以B1为例:0X0这⼀例配置为0X64对应的是B1 DATA路径上配置的0X64; 0X1这⼀例配置的值从PA规格书中的TPC表格得到,如图; 其它频段同理配置就可,到这⾥el1_rf 这个⽂件夹就配置OK了.ul1_rf⽂件夹配置1,打开ul1_rf⽂件夹,找到ul1d_custom_rf.h⽂件配置RX端⼝, TX端⼝,频段信息,BPI逻辑等.2,ul1d_custom_mipi.c配置,这个⽂件配置和LTE的是同理,也是要配置RX EVENT, TX EVENT, RX DATA, TX DATA, TPC这⼏项. RX EVENT,RX DATA,TX EVENT,TX DATA,TPC配置,如图配置的TPC是延⽤的SKY的TPC表,0X00配置为(0X64)表⽰PA路径,0X02配置为(0XD0)表⽰PA发射,同LET⼀样; 0X01和0X03配置如8功率等级配置为(0X77)和(0X88),这两个值可以从SKY的TPC配置表中得到,如图表格,其它功等级的TPC如表格类推就可! ⾄此ul1_rf⽂件夹配置完成!l1_rf⽂件夹配置1,打开l1_rf找到m12193.c⽂件,配置频段信息;2,l1d_custom_rf.h配置,在这个⽂件中配置RX端⼝, BPI逻辑;TX端⼝不⽤配置,在后⾯的l1d_custom_mipi.c⽂件定义就OK RX端⼝配置,BPI逻辑配置,3,l1d_custom_mipi.c配置,这个⽂件同样是要配置RX EVENT, TXEVENT, RX DATA, TX DATA, 和TPCRX EVENT,RX DATA,TX EVENT,TX DATA,DATA步骤详解:0X1C配置为(0X38)表⽰器件初始化; 0X00配置为(0X06)表⽰器件隔离,开关规格书上得到; 0X01配置为(0X86)表⽰TX偏置电压,从规格书中得到; 0X00配置为(GGE_MIPI_PA_G8)表⽰调制模式,不可修改; 0X1C配置为(0XB8)表⽰PA关闭TPC配置,TPC配置从规格书中得到值,如图到这⾥l1_rf⽂件夹配置完成.tl1_rf⽂件夹配置1,tl1d_custom_rf.h配置,这个⽂件主要配置,控制电压模式,RX 端⼝, TX端⼝,控制电压模式,2,tl1d_custom_mipi.h配置,这个⽂件主要配置,ASM和PA的USID, RX DATA, TX DATA, ASM和PA USIDRX DATA,RX ON配置为0X1C是从原理图上得到连接的是TRX12端⼝,规格书上0X1C,如图TX DATA,TX ON配置为(PA_FLAG_SetDefault)表⽰设置为默认值,调⽤下⾯的TPC参数.PA TPC,如图步骤详解:0X00配置为(0X0F)表⽰PA发射; 0X01配置为(0XF7)是表⽰PA偏置电压,根据实测值微调;⾼中低三段配置⼀样就⾏,到这⾥TDS部分就配置完成!cl1_rf⽂件夹配置1,c2k_custom_rf.h⽂件配置,这个⽂件主要配置,频段信息, RX 端⼝, TX端⼝, BPI逻辑现在新的MTK⽅案CDMA都是共⽤的FDD BAND5通道频段信息,RX 端⼝2,c2k_custom_mipi.c配置,这个⽂件要配置RX EVENT, TX EVENT, RX DATA, TX DATA,TPC RX EVENTRX DATARX DATA 详解,0X1C配置为(0X38)表⽰器件初始化,⼀般器件初始化都是0X380X00配置为(0X05)表⽰RX ON,这个值从2G开关规格书得到0X00配置为(0X00)表⽰PA 待命, 0X1C配置为(0XB8)表⽰器件关闭TX EVENTTX DATATX DATA步骤详解:0X1C配置为(0X38)表⽰器件初始化; 0X00配置为(0X3C)表⽰PA路径如图2; 0X01配置为(0X00)表⽰空闲待命状态; 0X02配置为(0X50)表⽰PA ON 如图3; 0X03配置为(0X00)表⽰空闲待命; 0X00配置为(0X00)表⽰PA OFF0X1C配置为(0X38)表⽰器件初始化; 0X00配置为(0X05)表⽰2G开关ON 如图4;TPC配置TPC的配置延⽤了SKY的TPC表格,只需要配置1和3寄存器就可,如图1; EVDO和TPC配置的1X⼀样就可,如图2到这⾥cl1_rf⽂件夹就配置完成了!。
MTK MMI问题总结

WBG3502W_0201_GPRS.mak文件 可以看到当前项目的宏,是可以更改的,更改make文件后需要重新new
make文件中可以查看屏幕宏如 MAIN_LCD_SIZE = 240X320。
1.编译到很多log时,按ctrl+c,可停止当前编译,进行其他模块编译。
重复new 切换版本时会出现多个这样的文件。BPLGUInfoCustomApp_MT6236_S00_MAUI_11A_W11_12_MP_V5_F3
7.编译出错log查看,编译项目文件下,如build\log\gnapp.log.log,有时候开着联编,remake出错后没有log提示关掉联编后就可以
1.字串gn_ref_list.txt、ref_list.txt,需要用UltraEdit打开编辑并保存。可以用Excel查看,不能
用来保存。
*#0044#(英语),*#0380#(乌克兰),*#0007# (俄语)
Resgen工具(替换某个ID的某个语言的翻译):
mmi_menu_handlers.h 菜单高亮是否注册成功可以看mmi_menu_handlers.h中,注册成功的高亮都会在此显示
CustMenuTree_Out.c可以看到当前的所以菜单菜单,这是编译资源时生成的
3.注释掉一段代码,#if 0就可以了
4.*#837500# 可以进入Version Info Summary界面,查看本机所烧的软件版本
映射盘:subst K: E:\code\code\guoxt_prj_mtk_11a可以把批处理放在开始——启动栏,每次开机都会执行。
批处理如附件内容。若删除映射盘,subst k: /d 命令,具体可看help。
MTK-camera上电流程分析

MTK camera上电流程分析上电相关文件:Mediatek/custom/vanzo89_wet_jb2/kernel/camera/camera/kd_camera_hw。
cMediatek/custom/vanzo89_wet_jb2/kernel/camera/camera/kd_camera_hw。
hMediate/custom/common/kernel/imgsensor/src/kd_sensorlist。
cMediate/custom/common/kernel/imgsensor/src/kd_sensorlist.h注:本文档以mt89_v10_vanzo_test项目为例MTK开机过程中会去检查当前项目(手机上烧录的当前软件)所有在Projectconfig.mk中配置过的camera sensor,如下:CUSTOM_HAL_IMGSENSOR=imx111_mipi_raw ov9724_mipi_rawCUSTOM_KERNEL_IMGSENSOR=imx111_mipi_raw ov9724_mipi_raw也就是说在开机的时候,系统会自动去detect这两颗camera sensor是否都能正常通信,主要是通过读sensor的id来判断的。
具体是调用下面的函数来开始检查之旅的:==========mediate/custom/common/kernel/imgsensor/src/kd_sensorlist。
c================这个函数先是调用kdGetSensorInitFuncList(&pSensorList)获取系统配置的kdSensorList [],这个数组在mediatek/custom/common/kernel/imgsensor/src/kd_sensorlist.h中定义的,该数组也是我们加入新的型号sensor时需要改动的一个地方,如果你不把你新加入的sensor放进这个数组,系统也不会知道你配置过这个sensor。
MTK手机软件系统工程和配置简介

MTK是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案,大部分做手机的技术人员都对此有接触和了解。
不过,MTK的整套软件系统十分庞大且复杂,很多刚接触这套系统的软件工程师一时不知如何进行配置和客户化定制。
本文在此对整个MTK软件系统的工程结构和配置进行了简单介绍,希望通过此文和大家相互交流MTK软件系统的维护和修改、定制方面的心得。
MTK使用了nucleus实时操作系统,在其上做了个内核抽象层的封装,以适应多种实时操作系统,如oscar、ThreadX、nucleus。
整个软件系统包括nucleus操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。
在这里MMI部分几乎包括了操作系统内核、协议栈、文件系统之上的所有部分,其中WGUI也在其中。
MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成。
因为MTK的整个软件系统是一个很庞大而且复杂的工程,并且要支持多个MTK的产品系列和多家客户的客户化支持,使用集成开发环境(IDE)已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生成。
所以MTK的软件系统使用了windows下的GNU开发工具链(MinGW)来进行工程的管理、配置和构建,MTK将MinGW放到了第三方工具中。
另外还使用了perl脚本来解析用户输入的命令行参数,因此第三方工具中还包含了ActivePerl(windows下的perl解释器)。
不过,整个软件系统并没有使用MinGW的全部工具,好象只使用了make这个工具,由几个Makefile控制了构建的过程,在编译和链接时根据最终生成PC模拟版还是ARM版而分别调用VC的编译器和链接器或ADS1.2的编译器和链接器。
接下来我们从具体的工程实践来看MTK的手机软件系统。
一. MTK手机软件系统的目录结构简介MTK手机软件系统的主要目录如下所示,因整个工程的目录树非常庞大,为简单起见和减小篇幅,去除了在工程结构中相对不重要的目录。
mtk启动过程

启动过程MT6305上电给基带芯片供电,在一定时序条件后,给基带芯片复位信号,开始了ARM核的启动过程。
要谈启动,我们必须熟悉Scatter file、基带资料的Memory mapping章节。
Scatter file定义了load region 和excecute region,我们要关心系统运行时代码、数据的地址分布。
Bootarm.s是一个重要的文件,与启动过程有关,其中的INT_Initialize函数是ARM启动开始执行的代码。
BSP所做的事情主要包括:1、配置PLL,配置基带芯片的EMI参数,以让系统能够以最大的速度读取外部存储设备数据,让CPU以最大速度运行,从而缩短启动过程。
2、做好runtime代码及数据的准备,确保excecute region的代码及数据到位。
3、配置好ARM七种异常模式的堆栈,进入RTOS nucleus的初始化。
4、nucleus留给客户的初始化函数Application_Initialize,做了平台该做的初始化工作,比如外部控制器的初始化等等。
6.2 RTOS在分析系统问题,开发跨线程应用时,必须熟悉RTOS。
目前使用的RTOS是nucleus,尽管在BSP中看到了它对ThreadX的支持。
不同的RTOS,实际上也是大同小异,但是具体的API或者参数会有不同,因此我们需要下载nucleus的API文档,在需要了解细节时,可以翻阅此文档。
同时,TRACE32支持基于RTOS级别的调试,因此对RTOS的了解,有助于提高调试能力。
有点特殊的是,nucleus有 LISR,HISR的概念,实际上它是一种给开发者的印象。
它告诉开发者,中断处理函数LISR要尽量的耗时短,以确保其它中断能有机会及时响应。
HISR再处理略为次要些的工作,但耗时也不能太长,因为HISR比任何TASK的优先级都高,我们应该让真正需要实时的工作获取CPU的机会。
Application_Initialize中的mainp函数,负责任务的创建。
MTK开机流程

MTK开机流程-MMI部分(VC模拟器)基于53平台09A版本,通过VC模拟器调试,整理出一条大概的MMI开机流程,后续完善。
- Hardward boot and setup system statck etc.- Nucleus Plus RTOS initialization- Hardware initialization- Tasks/Modules initialization/configuration备注:以上部分参考文档《MMI Platform Source Code Training.pdf》,以下部分通过VC模拟器调试。
- 创建MMI task进程mmi_create()- MMI task初始化MMI_Init()mmi_frm_init_key_event() // 按键初始化L4InitTimer() // 计时器初始化setup_UI_wrappers() // WGUI初始化mmi_fe_init() // 字体初始化- MMI task接收消息事件MMI_task()InitEventHandlersBeforePowerOn() // 事件初始化MMI_MTPNP_m aster_init()以及MMI_MTPNP_slave_init() // 主副SIM卡初始化msg_get_ext_queue_info() // 获取消息mmi_frm_fetch_msg_from_extQ_to_circularQ() // 消息转换OslNumOfCircularQMsgs() // 获取消息个数OslReadCircularQ() // 读取消息信息switch (Message.msg_id){...case MSG_ID_MMI_EQ_POWER_ON_IND: // 开机事件break;...}SetDateTime() // 设置时间gdi_init() // GDI初始化switch (p->poweron_mode){...case POWER_ON_KEYPAD: // 按键开机...}MTPNP_AD_Init() // AD初始化,还不太清楚PhnsetSetUARTConfig() // UART配置DTGetRTCTime(&StartUpTime); // 获取开机时间- MMI 启动流程mmi_bootup_start()mmi_bootup_entry_disk_check() // 磁盘检查mmi_frm_power_on_init_procedure() // 开机初始化FlightModeCheckBeforeAnimation() // 检测飞行模式InitializeAll() // APP初始化InitNvramDataBeforeAnimation() // NV初始化- APP初始化InitializeAll()InitUnicodeSupport() // Unicodegdi_init() // GDImdi_audio_init() // AUDIOmdi_init() // MDImdi_webcam_init() // 网络摄像头InitMMIUsbContext() // USBInitProtocolEvents() // Protocol EventInitFramework() // Framework InitHardwareEvents() // Protocol EventInitTime() // Date Timesetup_UI_wrappers() // WGUIPopulateResData() // 资源文件,包括字符串、图片、音频等PowerAndEndKeyHandler() // Power And End Key Handle InitStringLanguage() // 多国语言mmi_um_init() // 短消息mmi_dispatch_init() // 彩信InitCallManagem ent() // 通话记录mmi_vt_init() // Video Telephonymmi_ucm_init() // 呼叫initialize_UI_demo() // UI环境InitNetWorkBootUpEventsCallBack() // 网络InitProfileApp() // 情景模式InitSimDetection() // SIM卡短消息...- 初始化完成后,开机动画switch (p->poweron_mode){...default:ProtocolEventHandler(...);break; // 默认处理...}MTPNP_AD_Bootup()mmi_bootup_dual_sim_start() // SIM卡mmi_bootup_dual_sim_start_bootup_by_mode() // SIM卡MTPNP_PFAL_Master_Startup_Normal() // SIM卡PowerOnNormalMode() // 正常模式开机mmi_bootup_entry_animation() // 开机动画mmi_pwron_entry_animation_screen() // 开机动画界面gui_start_timer(force_stop_time, mmi_pwron_force_terminate_display) // 设置强制关闭动画计时器mmi_pwron_show_image_callback() // 动画完成回调EntryPhnseFactoryDefaultCalibrationScr() // 屏幕校准mmi_bootup_exit_animation() // 动画结束mmi_bootup_entry_low_battery_warning() // 检查电量mmi_bootup_entry_security_check() // 安全检查,包括SIM卡密码,SIM卡是否可用等goto_opening_screen()InitAllApplications() // 重复初始化,直接returnexit_custom_startup_screen() // 退出动画ShowWelcomeScr() // 显示welcom界面ShowIdleAppSubLcd() // 显示子屏mmi_bootup_exit_welcom e_screen() // 退出welcom界面mmi_bootup_entry_network_searching() // 搜网EntryIdleScreen() // 进入待机界面fast_openscreen()显示开机动画playRequestedTone(POWER_ON_TONE); 开机铃声free_ilmwhile(1)再一次循环直接跳到ProtocolEventHandler函数。
mtk开机启动过程

第一步:启动simulator的时候,直接进入:MMI_task( )1. iacMemInit();2.进入一个while(1)循环。
以后的过程都是通过消息机制,即:一直在这个循环中读取消息,然后做相应的处理。
第一次进入while(1)之后,OslReceiveMsgExtQ(qid, &Message)就读取到一个消息:PRT_MMI_TIMER_IND。
然后就一直在这个循环中读消息。
第二步:Power On读取到消息:MMI_EQ_POWER_ON_INDcase MMI_EQ_POWER_ON_IND:gdi_init();switch (p->poweron_mode) //判断power on的模式{case POWER_ON_KEYPAD: //用户按下开机键OslMemoryStart(TRUE);g_charbat_context.PowerOnCharger = 0; //不是因为充电而开机的InitializeAll(); //初始化,重点学习OslDumpDataInFile();//这个函数不能进入,直接跳过InitNvramData(); //加载保存在NVRAM中的设置的参数mmi_pwron_entry_animation_screen(); //开机动画break;case case POWER_ON_PRECHARGE:case POWER_ON_CHARGER_IN:g_pwr_context.PowerOnMode = p->poweron_mode;InitializeChargingScr();break;case POWER_ON_ALARM: //定时开机AlmInitRTCPwron();break;case POWER_ON_EXCEPTION: //For abnormal reset when invalid SIMOslMemoryStart(TRUE);SetAbnormalReset();InitializeAll();OslDumpDataInFile();ClearInputEventHandler(MMI_DEVICE_ALL);ClearKeyHandler(KEY_END, KEY_LONG_PRESS);InitNvramData();AlmReInitialize();InitAllApplications();mmi_pwron_exception_check_display();break;}执行过开机之后,就不会进入这里了。
MTK芯片手机开机的工作条件

MTK 芯片手机开机的工作条件手机开机的工作条件(具备以下三个条件)[折叠]二、手机开机的工作条件手机要正常持续开机,需具备以下三个条件:壹是电源 IC 工作正常;二是逻辑电路工作正常;三是软件运行正常。
1、电源 IC 工作正常(1)电源 IC 供电正常。
电源 IC 要正常工作,需有工作电压,即电池电压或外接电源电压;(2)有开机触发信号。
开机触发信号既有高电平,也有低电平,无论哪种触发方式,开机触发信号均是送到电源 IC 上,于按下开机键时,开机触发信号就有了电平的变化(从高电平变为低电平或从低电平变为高电平)。
(3)电源 IC 正常。
电源 IC 内壹般集成有多组受控或非受控稳压电路,当有开机触发信号时,电源 IC 的稳压输出端应有电压输出。
(4)有开机维持信号。
开机维持信号来自 CPU,电源 IC 只有得到开机维持信号后才能输出持续的电压,否则,手机将不能持续开机。
2、逻辑电路工作正常(1)有正常的工作电源。
按下开机键后,电源 IC 输出稳定的供电电压为逻辑电路供电,包括CPU、FLASH 和CSP。
(2)有正常的系统时钟。
时钟信号是 CPU 按节拍处理数据的基础,手机中时钟电路有俩种:壹种是时钟 VCO 模块,内含振荡电路的元件及晶体。
当电源正常接通后,可自行振荡,形成13MHZ 信号输出;另壹种是由中频集成电路和晶体组成,中频 IC 得到电源后内部振荡电路供晶体起振,由中频模块放大输出。
13MHZ 时钟壹般经过电容、电阻或放大电路供给 CPU,另外也供给射频锁相环电路作为基本时钟信号。
(3)有正常的复位信号。
CPU 刚供上电源时,其内部各寄存器处于随机状态,不能正常运行程序,因此,CPU 必须有复位信号进行复位。
手机中的 CPU 的复位端壹般是低电平复位,即于壹定时钟周期后使 CPU 内部各种寄存器清零,而后此处电压再升为高电平,从而使 CPU 从头开始运行程序。
(4)3、软件运行正常阅读(17)分手机的开机过程[折叠]开机过程壹、手机的开机过程不同厂家、不同型号的手机,开机电路有很大的不同,但开机的基本过程却是壹样的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 创建MMI task进程 mmi_create( - MMI task初始化
MMI_Init( mmi_frm_init_key_event( // 按键初始化 L4InitTimer( // 计时器初始化setup_UI_wrappers( // WGUI初始化 mmi_fe_init( // 字体初始化 - MMI task接收消息事件 MMI_task( InitEventHandlersBeforePowerOn( // 事件初始化
MMI_MTPNP_master_init(以及MMI_MTPNP_slave_init( // 主副SIM卡初始化
msg_get_ext_queue_info( // 获取消息 mmi_frm_fetch_msg_from_extQ_to_circularQ( // 消息转换 OslNumOfCircularQMsgs( // 获取消息个数 OslReadCircularQ( // 读取消息信息 switch (Message.msg_id { ... case MSG_ID_MMI_EQ_POWER_ON_IND: // 开机事件 break; ... } SetDateTime( // 设置时间 gdi_init( // GDI初始化 switch (p-
>poweron_mode { ... case POWER_ON_KEYPAD: // 按键开机 ... }
MTPNP_AD_Init( // AD初始化?(need check PhnsetSetUARTConfig( // UART配置DTGetRTCTime(&StartUpTime; // 获取开机时间 - MMI 启动流程
mmi_bootup_start( mmi_bootup_entry_disk_check( // 磁盘检查
mmi_frm_power_on_init_procedure( // 开机初始化FlightModeCheckBeforeAnimation( // 检测飞行模式 InitializeAll( // APP初始化InitNvramDataBeforeAnimation( // NV初始化 - APP初始化
InitializeAll( InitUnicodeSupport( // Unicode gdi_init( // GDI mdi_audio_init( // AUDIO mdi_init( // MDI mdi_webcam_init( // 网络摄像头 InitMMIUsbContext( // USB InitProtocolEvents( // Protocol Event InitFramework( // Framework InitHardwareEvents( // Protocol Event InitTime( // Date Time setup_UI_wrappers( // WGUI PopulateResData( // 资源文件,包括字符串、图片、音频等PowerAndEndKeyHandler( // Power And End Key Handle InitStringLanguage( // 多国语言 mmi_um_init( // 短消息 mmi_dispatch_init( // 彩信 InitCallManagement( // 通话记录 mmi_vt_init( // Video Telephony mmi_ucm_init( // 呼叫 initialize_UI_demo( // UI 环境 InitNetWorkBootUpEventsCallBack( // 网络 InitProfileApp( // 情景模式InitSimDetection( // SIM卡短消息 ... - 初始化完成后,开机动画 switch (p-
>poweron_mode { ... default: ProtocolEventHandler(...; break; // 默认处理 ... } MTPNP_AD_Bootup( mmi_bootup_dual_sim_start( // SIM卡
mmi_bootup_dual_sim_start_bootup_by_mode( // SIM卡
MTPNP_PFAL_Master_Startup_Normal( // SIM卡 PowerOnNormalMode( // 正常模式开机 mmi_bootup_entry_animation( // 开机动画
mmi_pwron_entry_animation_screen( // 开机
动画界面 gui_start_timer(force_stop_time, mmi_pwron_force_terminate_display // 设置强制关闭动画计时器 mmi_pwron_show_image_callback( // 动画完成回调EntryPhnseFactoryDefaultCalibrationScr( // 屏幕校准 mmi_bootup_exit_animation( // 动画结束 mmi_bootup_entry_low_battery_warning( // 检查电量
mmi_bootup_entry_security_check( // 安全检查,包括SIM卡密码,SIM卡是否可用等 goto_opening_screen( InitAllApplications( // 重复初始化,直接return
exit_custom_startup_screen( // 退出动画 ShowWelcomeScr( // 显示welcom界面ShowIdleAppSubLcd( // 显示子屏 mmi_bootup_exit_welcome_screen( // 退出welcom 界面 mmi_bootup_entry_network_searching( // 搜网 EntryIdleScreen( // 进入待机界面。