MTK平台入门

合集下载

mtk平台mmi培训资料(中文)

mtk平台mmi培训资料(中文)

/* Code Body */ /*---------------------------------------------------------------*/ gdi_layer_lock_frame_buffer(); SetupCategoryKeyHandlers(); MMI_title_string = (UI_string_type) title; MMI_title_icon = (PU8) get_image(title_icon); change_left_softkey(left_softkey, left_softkey_icon); change_right_softkey(right_softkey, right_softkey_icon); //Create List create_fixed_icontext_menuitems(); associate_fixed_icontext_list(); ShowListCategoryScreen( (UI_string_type) title, get_image(title_icon), get_string(left_softkey), get_image(left_softkey_icon), get_string(right_softkey), get_image(right_softkey_icon), number_of_items); for (i = 0; i < number_of_items; i++) { add_fixed_icontext_item((UI_string_type) list_of_items[i], wgui_get_list_menu_icon(i, list_of_icons[i])); } h_flag = set_list_menu_category_history(MMI_CATEGORY_CUSTOM_LIST, history_buffer); if (h_flag)

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 开发平台搭建与入门教程

一、开发环境设立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平台射频培训解读
在静态传输条件下,发射机各功率等级的载频峰值功率及容限 值应满足下表的要求
GSM900 4类功率等级移动台 Power LEV 5 发射机输出 功率dBm 33 功率容限 ±2dB DCS1800 1类功率等级移动台 Power LEV 0 发射机输出 功率dBm 30 功率容限 ±2dB
6~15
16~19
基带处理器对射频控制信号包括:LB_TX(当GSM发射突发脉冲来的时候为 高电平),HB_TX(当DCS/PCS发射突发脉冲来的时候为高电平) PA_EN(PA使 能信号),BANDSW_DCS(PA GSM/DCS/PCS放大器频段选择信号。 )
8
五、射频电路元器件识别
天线主馈点 射频连接器
850、900接收滤波器
11
26MHZ的校准原理:
1)、让手机进入META模式,从.cfg文件中读取DACmin、DACmax,并计算出对应 delta Fmin和delta Fmax。 2)、计算出相应的斜率slope,并检查slop是否在正常范围内。 3)、如果slop在正常范围内,将频率设为26M并算出DAC值,在此DAC附近变化, 找出最小的delta F和对应的DAC,并检查此DAC是否在正常范围内。 4)、如果DAC在正常范围内,将DAC和slope写入NV
GSM850、900接 收
4
2、接收滤波电路
接收滤波电路用于频段预选,从天线接收到的众多频率分量中,选择所需要的GSM频段信号, 同时滤除带外非GSM系统杂散信号,滤波器采用我们公司目前常用的表面声波滤波器 SAW。
1930~1990
1805~1880
925~960
5
3、射频功放电路
PA使能 发射频段选择
13

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初学必须了解的知识点为何 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平台个人笔记精髓关于MTK Simulator1.MTK simulator的工程文件是 PixtelMMI.dsw。

2.打开PixtelMMI.dsw,检查文件default_Fmrdo.c、default_mmi_pro、default_mmi_settings.c、default_version.c文件是否存在工程文件中,上述文件存放目录:项目所在目录\custom\app\MILAN_BB。

3.在调试运行过程中会提示某些DLL文件无法连接,这是VC没有安装。

DLL文件所在目录:VC安装盘\VC98\DEBUG。

把缺失的文件复制到window安装目录下的System32目录里。

4.运行MTK Simulator,选取Simulator,会运行MMINWSimulator;在MMINWSimulator菜单中,选取Menu Messages,会弹出一个Send Event窗口,窗口里有一个Events列表,列表里有不同用途种类的Events;如果需要启动手机,选取BootUp Events,点击OK按钮,MTK Simulator模拟开机过程。

关于调试语句的说明kal_print语句:该语句只能打印字符串信息。

Trace_out语句:该语句可以输出格式化字符串。

ASSERT语句:断言语句。

Trace语句:可以输出格式化字符串。

关于MTK Target的编译连接批处理命令: Milan.bat 。

●概述在windows下,打开dos编辑窗口(开始->运行->cmd),找到工程代码所在根目录,如:E:\MTK6217 输入编译批处理命令:格式:make[custom="projectName"]"project" "action"["modules"]Example: make custom=mtk6217 gprs newModules:用于对单个模块进行编译的选项。

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平台硬件培训(ppt 30页)[001]

MTK平台硬件培训(ppt 30页)[001]
18
硬件电路原理 -基带 - 数字逻辑控制
LCD控制 信号线
MCP 控制信号
Memory地址总线
系统复位信号输 入,来自PMU
VCXO供电使能
音频放大器 shutdown信号
充电控制信号
USB LDO(3.3V) 使能信号
19
硬件电路原理 -基带 - 数字逻辑控制
键盘接口
LCD & NAND数据线 NAND控制信号
音频隔直流 MIC负偏压
RF去耦电容
22
硬件电路原理 -基带 - 接收音频
音频放大
滤除RF TDMA noise
滤除RF TDMA noise
23
Hale Waihona Puke 硬件电路原理 -基带 - 18pin I/O
CPU通过ADC4电压大 小检测外插数据线还
是普通充电器
插上USB数据线以后
该脚会被电脑拉低
24
硬件电路原理 -基带 - 触摸屏控制器
开机维持和闹钟唤醒
PMIC_VTCXO LDO使能
选择VM输出2.8V给外 部MCP供电
键盘背光灯使能
振动马达使能
10
硬件电路原理 -电源管理 - 充电控制
MT6305通过#1CHRIN判断充电器的插入如果充电器电压正常就通过#6CHRDET向CPU发出中断,CPU通 过GPIO3_CHR_CTL控制MT6305,MT6305再通过#2 GATEDRV控制充电Mosfet U401来控制充电过程,通过 #4 Isense检测并控制充电电流的大小。ADC0_I-和ADC1_I+用于电池和充电通道的ADC检测,通过测试 ADC0和ADC1的电压差可以算出流经R413的充电电流。

MTK 起步

MTK 起步
FirstAppSrc.c程序的主源文件
2、将文件加入项目:
修改make\plutommi\mmi_app\下的三个文件:
1)mmi_app.lis:此文件用来申明MMI所要编译的所有源文件,添加如下一行:
plutommi\MMI\FirstApp\FirstAppSrc\FirstAppSrc.c
MTK编程起步——建立新APP和资源定义
一、添加新程序的步骤:
1、创建目录及文件:
目录一:plutommi\MMI\FirstApp
目录二:plutommi\MMI\FirstApp\FirstAppInc
文件列表:
FirstAppDefs.h:用于存放本程序所需要的类型,结构,常量的定义
ADD_APPLICATION_MENUITEM((
ORGANIZER_FIRSTAPP_MENU,//当前菜单ID
MAIN_MENU_ORGANIZER_MENUID,//父级菜单ID
#endif
2)找到如下定义块:
/* Beginning of resource table */
RESOURCE_BASE_TABLE_BEGIN()
……
/* End of resource table */
RESOURCE_BASE_TABLE_END()
在块中间末尾位置添加:
/****************************************************************************
DISP_LIST:列表显示,绝大部份普通菜单都是用此风格。
DISP_MATRIX:矩阵显示,如九宫格,十二宫格等等,一般主菜单都是用此风格。

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数据类型
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 基础知识

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大小的调整(即通话时,听到的对方声音大小的调整)其余一般不会用到。

以上是正常模式,其他如:免提,耳机均可按此方法调整。

在所有项均调整好后,逐一按返回键退出(请注意:此时不要直接按挂机键,这样将无法保存调整过的数值),待出现提示“修改参数?”选择“是”。

进入工程模式的方法:待机界面下按如下键: *#03646633#进入后菜单显示网络号码设备音频GPRS Act频宽选择MiscAuto Test ListPWR Down ControlSW PATHC SELECTDebug InfoSocket TestBluetooth各个命令如下:网络号码(下面的命令我也弄不清楚,建议不要乱调)RR Cell SelRR Ch DscrRR Ctrl ChanRR RACH CtrlRR LAI InfoRR Radio LinkRR Meas RepCC Chan InfoCC Call InfoCB InfoLCD主屏幕Set ContrastSet Bias Ratio---斜比率Set Line Rate---行比率Set temperature---温度GPIO---通用输入输出口(general-purpose I/O port) List PGIOGPIO#0GPIO#3GPO#3GPIO EditorGPO EditorPWM----脉宽调制PWM是开关型稳压电源中的术语。

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版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
更深入的了解可以查看文件夹Document\MMI Design Documents\Pixtel下的文件。
6 下载程序:
在当前工程build文件夹中找到对应的项目,打开项目文件夹,里面有*.bin文件就是我们要下载的文件。
7 编译错误信息查看:
如果在编译中某一模块编译不通过,我们可以在build\项目名称\log 中查看log信息
1.3 参考资料
[1] MMI High level design specification, pixtel
2 平台安装:
2.1 安装ads1.2
2.2 安装perl
2.3 安装usb 驱动,用于下载
3 编译命令:
};
信息提示音对应的数组是:
const audio_resource_struct mtk_resource_message_sounds[]={
{message01_mp3, sizeof(message01_mp3), 5},
make custom=m720 gsm remake(用于生成bin档即可烧录到手机的文件)
make custom=m720 gsm clean custom(把custom模块生成的obj文件删除)
make custom=m720 gsm update custom(update custom 模块)
{Y300Mid12_mid, sizeof(Y300Mid12_mid), 17},
{Y300Mid13_mid, sizeof(Y300Mid13_mid), 17},
{Y300Mid14_mid, sizeof(Y300Mid14_mid), 17},
#endif
#ifdef __SLT_LONG_DISTANCE_DDD__
MENU_LONG_DISTANCE_DDD,
#endif
#endif
ORGANIZER_ALARM_MENU,
#if defined (__MMI_WORLD_CLOCK__)
MTK平台入门
1 简介
1.1 目的及其应用范围
本文档介绍了mtk平台的一些基础应用和实现,适用于刚参加mtk软件开发人员
1.2 术语定义
MMI – Man-machine interface,人机界面
FMI – Feature rich MMI
修改的文件是custpack_audio.c中
const custpack_audio_header custpack_audio =
{ 15,
{
{Y300Mid01_mp3, sizeof(Y300Mid01_mp3), 5},
{Y300Mid02_mid, sizeof(Y300Mid02_mid), 17},
ADD_APPLICATION_STRING2(STR_GLOBAL_OK, "Ok","Global String- OK");
如果有对应的中文字符,则应在ref_list.txt中按照固定的格式添加中文字串。如:
STR_GLOBAL_OK GLOBAL 6 Global String- OK Ok 確定 确定
{resource06_mid, sizeof(resource06_mid), 17},
{resource07_mid, sizeof(resource07_mid), 17},
{resource08_mid, sizeof(resource08_mid), 17},
ORGANIZER_WORLDCLOCK_MENU,
#endif
#ifdef __MMI_MESSAGES_CLUB__
MAIN_MENU_SHORTCUTS_MENUID,
这个语句说明菜单ORGANIZER_CALENDER_MENU是菜单MAIN_MENU_ORGANIZER_MENUID的子菜单。而在res_organizer.c里,
ADD_APPLICATION_MENUITEM((ORGANIZER_CALENDER_MENU,MAIN_MENU_ORGANIZER_MENUID,
{Y300Mid15_mp3, sizeof(Y300Mid15_mp3), 5},
}
custpack_audio 数组 第一个参数是铃声总数
第二个参数是铃声list ,其中包含铃声数据,大小,类型,
铃声数据可以用MCT 这个工具转换,然后代替各个数组的数据,提示最好不要修改数组名称
3,
MENU_GOTO_TASK_CAL,
MENU_ID_CLNDR_JUMP_TO_DATE,
MENU_CAL_TYPE,
SHOW,
MOVEABLETOSHORTCUT,DISP_LIST,
ORGANIZER_CALENDER_MENU,
#endif
#if defined(__MMI_TODOLIST__)
ORGANIZER_TODOLIST_MENU,
8 模拟器运行:
首先安装好VC,然后直接运行工程目录下的PLUTOMMI\mmi\PixtelMMI.dsw文件,先编译资源文件,然后执行运行就可以了。
9 修改铃声资源:
一般项目开发修改的铃声资源主要是来电铃声,开关机铃声,翻合盖提示音,信息提示音
9.1.修, sizeof(resource03_mid), 17},
{resource04_mid, sizeof(resource04_mid), 17},
{resource05_mid, sizeof(resource05_mid), 17},
{Y300Mid06_mid, sizeof(Y300Mid06_mid), 17},
{Y300Mid07_mid, sizeof(Y300Mid07_mid), 17},
{Y300Mid08_mid, sizeof(Y300Mid08_mid), 17},
ORGANIZER_MENU_CALENDER_STRINGID,ORGANIZER_MENU_CALENDER_IMAGEID));
这个语句则声明了ORGANIZER_CALENDER_MENU菜单所拥有的子菜单。
1. 关于宏ADD_APPLICATION_STRING2()、ADD_APPLICATION_MENUITEM()可以参考文件Writing Applications Using Pixtel MMI Platform.pdf
const audio_resource_struct mtk_resource_sounds[]={
{resource01_mid, sizeof(resource01_mid), 17},
{resource02_mid, sizeof(resource02_mid), 17},
5 添加一个菜单:
首先给这个菜单起一个名字,即ID:如ORGANIZER_CALENDER_MENU,这个即是一个菜单的id也就是名字,但要把这个菜单加入到某个父菜单之下,则须指定其父菜单,方式可以参照:ORGANIZER_CALENDER_MENU这个菜单的方法,在res_mainmenu.c里,
{Y300Mid03_mid, sizeof(Y300Mid03_mid), 17},
{Y300Mid04_mid, sizeof(Y300Mid04_mid), 17},
{Y300Mid05_mid, sizeof(Y300Mid05_mid), 17},
make custom=m720 gsm new(等于执行了前三个步骤,即clean、resgen、remake)
make custom=m720 gsm update mmiresource(更新了资源但不会更新代码)
4 添加一个字符串:
首先给该字符串起一个名字,即ID:如STR_GLOBAL_OK,这个即是一个字串的id也就是名字,而这个字串的具体内容(比如STR_GLOBAL_OK的内容是“Ok”),可以用下面的语句来添加,
类型可以在mdi_audio.h 中查找,类如 这里的5 代表mp3,17代表mid
9.2修改开关机铃声,翻合盖提示音,信息提示音
resource_audio.c---------------------开关机铃声,翻合盖提示音,信息提示音
开关机铃声和翻合盖提示音对应的数组是一样的
{Y300Mid09_mid, sizeof(Y300Mid09_mid), 17},
{Y300Mid10_mid, sizeof(Y300Mid10_mid), 17},
{Y300Mid11_mid, sizeof(Y300Mid11_mid), 17},
通过 new, update, remake, clean all, clean modules, codegen. 来动作生成bin file (二进字文件)
类如:
假设项目是gsm项目,项目名称为m720,则有这些命令:
make custom=m720 gsm resgen(修改了资源时用这个命令生成新资源)
ADD_APPLICATION_MENUITEM((MAIN_MENU_ORGANIZER_MENUID,IDLE_SCREEN_MENU_ID,ORG_ENUM_TOTAL,
#if defined(__MMI_CALENDAR__)
SHOW,MOVEABLEACROSSPARENT,DISP_LIST,
MAIN_MENU_ORGANIZER_TEXT,MAIN_MENU_ORGANIZER_ICON));
相关文档
最新文档