MTK入门.docx

上传人:b****6 文档编号:7613392 上传时间:2023-01-25 格式:DOCX 页数:13 大小:20.27KB
下载 相关 举报
MTK入门.docx_第1页
第1页 / 共13页
MTK入门.docx_第2页
第2页 / 共13页
MTK入门.docx_第3页
第3页 / 共13页
MTK入门.docx_第4页
第4页 / 共13页
MTK入门.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

MTK入门.docx

《MTK入门.docx》由会员分享,可在线阅读,更多相关《MTK入门.docx(13页珍藏版)》请在冰豆网上搜索。

MTK入门.docx

MTK入门

MTK平台入门

 

简介

1.1目的及其应用范围

本文档介绍了mtk平台的一些基础应用和实现,适用于刚参加mtk软件开发人员

1.2术语定义

MMI-Man-machineinterface,人机界面

FMI-FeaturerichMMI

1.3参考资料

[1]MMIHighleveldesignspecification,pixtel

平台安装:

安装ads1.2

安装perl

安装usb驱动,用于下载

编译命令:

通过new,update,remake,cleanall,cleanmodules,codegen.来动作生成binfile(二进字文件)

类如:

假设项目是gsm项目,项目名称为m720,则有这些命令:

makecustom=m720gsmresgen(修改了资源时用这个命令生成新资源)

makecustom=m720gsmremake(用于生成bin档即可烧录到手机的文件)

makecustom=m720gsmcleancustom(把custom模块生成的obj文件删除)

makecustom=m720gsmupdatecustom(updatecustom模块)

makecustom=m720gsmnew(等于执行了前三个步骤,即clean、resgen、remake)

makecustom=m720gsmupdatemmiresource(更新了资源但不会更新代码)

添加一个字符串:

首先给该字符串起一个名字,即ID:

如STR_GLOBAL_OK,这个即是一个字串的id也就是名字,而这个字串的具体内容(比如STR_GLOBAL_OK的内容是“Ok”),可以用下面的语句来添加,

ADD_APPLICATION_STRING2(STR_GLOBAL_OK,"Ok","GlobalString-OK");

如果有对应的中文字符,则应在ref_list.txt中按照固定的格式添加中文字串。

如:

STR_GLOBAL_OKGLOBAL6GlobalString-OKOk確定确定

添加一个菜单:

首先给这个菜单起一个名字,即ID:

如ORGANIZER_CALENDER_MENU,这个即是一个菜单的id也就是名字,但要把这个菜单加入到某个父菜单之下,则须指定其父菜单,方式可以参照:

ORGANIZER_CALENDER_MENU这个菜单的方法,在res_mainmenu.c里,

ADD_APPLICATION_MENUITEM((MAIN_MENU_ORGANIZER_MENUID,IDLE_SCREEN_MENU_ID,ORG_ENUM_TOTAL,

#ifdefined(__MMI_CALENDAR__)

ORGANIZER_CALENDER_MENU,

#endif

#ifdefined(__MMI_TODOLIST__)

ORGANIZER_TODOLIST_MENU,

#endif

ORGANIZER_ALARM_MENU,

#ifdefined(__MMI_WORLD_CLOCK__)

ORGANIZER_WORLDCLOCK_MENU,

#endif

#ifdef__MMI_MESSAGES_CLUB__

MAIN_MENU_SHORTCUTS_MENUID,

#endif

#ifdef__SLT_LONG_DISTANCE_DDD__

MENU_LONG_DISTANCE_DDD,

#endif

SHOW,MOVEABLEACROSSPARENT,DISP_LIST,

MAIN_MENU_ORGANIZER_TEXT,MAIN_MENU_ORGANIZER_ICON));

这个语句说明菜单ORGANIZER_CALENDER_MENU是菜单MAIN_MENU_ORGANIZER_MENUID的子菜单。

而在res_organizer.c里,

ADD_APPLICATION_MENUITEM((ORGANIZER_CALENDER_MENU,MAIN_MENU_ORGANIZER_MENUID,

3,

MENU_GOTO_TASK_CAL,

MENU_ID_CLNDR_JUMP_TO_DATE,

MENU_CAL_TYPE,

SHOW,

MOVEABLETOSHORTCUT,DISP_LIST,

ORGANIZER_MENU_CALENDER_STRINGID,ORGANIZER_MENU_CALENDER_IMAGEID));

这个语句则声明了ORGANIZER_CALENDER_MENU菜单所拥有的子菜单。

关于宏ADD_APPLICATION_STRING2()、ADD_APPLICATION_MENUITEM()可以参考文件WritingApplicationsUsingPixtelMMIPlatform.pdf

更深入的了解可以查看文件夹Document\MMIDesignDocuments\Pixtel下的文件。

下载程序:

在当前工程build文件夹中找到对应的项目,打开项目文件夹,里面有*.bin文件就是我们要下载的文件。

编译错误信息查看:

如果在编译中某一模块编译不通过,我们可以在build\项目名称\log中查看log信息

模拟器运行:

首先安装好VC,然后直接运行工程目录下的PLUTOMMI\mmi\PixtelMMI.dsw文件,先编译资源文件,然后执行运行就可以了。

修改铃声资源:

一般项目开发修改的铃声资源主要是来电铃声,开关机铃声,翻合盖提示音,信息提示音

9.1.修改来电闹钟铃声资源:

修改的文件是custpack_audio.c中

constcustpack_audio_headercustpack_audio=

{15,

{

{Y300Mid01_mp3,sizeof(Y300Mid01_mp3),5},

{Y300Mid02_mid,sizeof(Y300Mid02_mid),17},

{Y300Mid03_mid,sizeof(Y300Mid03_mid),17},

{Y300Mid04_mid,sizeof(Y300Mid04_mid),17},

{Y300Mid05_mid,sizeof(Y300Mid05_mid),17},

{Y300Mid06_mid,sizeof(Y300Mid06_mid),17},

{Y300Mid07_mid,sizeof(Y300Mid07_mid),17},

{Y300Mid08_mid,sizeof(Y300Mid08_mid),17},

{Y300Mid09_mid,sizeof(Y300Mid09_mid),17},

{Y300Mid10_mid,sizeof(Y300Mid10_mid),17},

{Y300Mid11_mid,sizeof(Y300Mid11_mid),17},

{Y300Mid12_mid,sizeof(Y300Mid12_mid),17},

{Y300Mid13_mid,sizeof(Y300Mid13_mid),17},

{Y300Mid14_mid,sizeof(Y300Mid14_mid),17},

{Y300Mid15_mp3,sizeof(Y300Mid15_mp3),5},

}

custpack_audio数组第一个参数是铃声总数

第二个参数是铃声list,其中包含铃声数据,大小,类型,

铃声数据可以用MCT这个工具转换,然后代替各个数组的数据,提示最好不要修改数组名称

类型可以在mdi_audio.h中查找,类如这里的5代表mp3,17代表mid

9.2修改开关机铃声,翻合盖提示音,信息提示音

resource_audio.c---------------------开关机铃声,翻合盖提示音,信息提示音

开关机铃声和翻合盖提示音对应的数组是一样的

constaudio_resource_structmtk_resource_sounds[]={

{resource01_mid,sizeof(resource01_mid),17},

{resource02_mid,sizeof(resource02_mid),17},

{resource03_mid,sizeof(resource03_mid),17},

{resource04_mid,sizeof(resource04_mid),17},

{resource05_mid,sizeof(resource05_mid),17},

{resource06_mid,sizeof(resource06_mid),17},

{resource07_mid,sizeof(resource07_mid),17},

{resource08_mid,sizeof(resource08_mid),17},

 

};

信息提示音对应的数组是:

constaudio_resource_structmtk_resource_message_sounds[]={

{message01_mp3,sizeof(message01_mp3),5},

{message02_mp3,sizeof(message02_mp3),5},

{message03_mid,sizeof(message03_mid),17},

{message04_mid,sizeof(message04_mid),17},

{message05_mid,sizeof(message05_mid),17},

{message06_mid,sizeof(message06_mid),17},

{message07_mid,sizeof(message07_mid),17},

{message08_mid,sizeof(message08_mid),17},

{message09_mid,sizeof(message09_mid),17},

{message10_mid,sizeof(message10_mid),17},

};

9.3调整铃声总数和id

resource_audio.h--------------------设置铃声id和总数

铃声ID大小不需要调整,只是根据铃声总数变了,增加或者减少ID

修改图片资源:

添加图片资源一般用这个函数:

ADD_APPLICATION_IMAGE2,它的参数分别是:

图片ID,图片放置路径,图片用途描述。

类如:

ADD_APPLICATION_IMAGE2(MAIN_MENU_SYSTEM_ICON,CUST_IMG_PATH"\\\\MainLCD\\\\MainMenu\\\\BI_DEGREE\\\\MM_ITEM.gif","Iconusedforsysteminmainmenu");

图片资源的修改主要分几种情况:

10.1直接替换图片资源,不需要调整座标:

类如开关机动画,墙纸,开关机mp4等,这种修改资源很简单,但是修改时要注意图片来名称和类型与代码中是否匹配。

10.2修改需要调整座标的图片:

如日历,计算器等,这些图片修改需要ID给出座标,然后我们在代码中修改。

10.3修改用tools生成座标的图片:

主要是MP3,MP4,FM,世界时钟,座标调整可以用mcttools来做。

关于这个工具的使用

10.4主题的修改也可以mcttools来做

 

MTK快速上手培训

关于编译:

资源的编译:

1).需要编译资源的情况:

在如下的修改情况下,我们需要重编译资源:

a.修改了..plutommi\Customer\CustResource\PLUTO_MMI\目录下的文件如字库文件

(FontRes.c、L_**.h文件)、MMI配置文件(MMI_featuresPLUTO.h)、字符串资源文件

(Ref_list.txt)等;

修改了..plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的文件,这个目

录下的文件都是Res_*.*文件,是各个AP或模块的资源配置文件,包含菜单、图片、

字符串资源的配置;

注:

Cust*.*文件是资源编译生成的,不能手动修改。

2).编译方法:

进入..\plutommi\Customer目录,执行remakeResource.bat批处理文件。

编译成功会生成一些Cust*.*文件在\plutommi\Customer\CustResource目录下,编译代码时再编译这些文件;

编译失败到build目录下查看log文件àres_gen.txt,可看到出错信息。

3).当我们改变了资源,想在PC模拟上看到修改效果时,也需要先执行如上的资源编译命令,

再在VC环境下build一下资源,就可以看到效果了。

代码的编译:

有如下的编译命令:

makecustom=WTO114_6219gprsnew

makecustom=WTO114_6219gprsupdate

makecustom=WTO114_6219gprsremake

makecustom=WTO114_6219gprsclean

这些编译命令做在build.bat中,我们输入相应的选项就可。

编译成功后,在build目录下生成所有的.obj,编译信息log文件、下载.bin文件等;

编译失败时,到build目录下查看相应的log文件,可看到出错信息。

以上是我们的WTO114工程,几个关键字解释如下:

1).WTO114_6219,Project名,对应make目录下的WTO114_6219_GPRS.mak文件;

2)最后一个关键字:

new:

不管资源、代码是否有改变,全部重编;

update:

扫描资源、代码的改变,有改变的重编,无改变的不编;

remake:

不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编;

clean:

清除build目录下的所有内容,保留目录结构。

菜单的修改或增加:

以一个例子的方式介绍如何添加一个菜单,例子如下:

在主菜单的“设置”菜单下增加一个“我的设定”子菜单,“我的设定”下有两个子菜单:

“我

的设定1”和“我的设定2”,打开这两个菜单,分别显示一幅动画。

步骤如下:

1.在..\plutommi\mmi\Setting\SettingInc目录下的SettingDefs.h文件中增加如下内容:

a.enumSTR_SETTING_LIST的最后增加三个字符串ID的声明:

STR_MY_SETTING,

STR_MY_SETTING1,

STR_MY_SETTING2,

b.enumSCR_SETTING_LIST的最后增加三个ScreenID的声明:

SCR_MY_SETTING,

SCR_MY_SETTING1,

SCR_MY_SETTING2,

c.enumIMG_SETTING_LIST的最后增加一个ImageID的声明:

IMG_MY_SETTING,

d.在..\plutommi\mmi\Inc目录下GlobalMenuItems.h文件中enumGLOBALMENUITEMSID

的最后增加三个菜单ID的声明:

(有的是在本AP或模块的*Defs.h中声明)

MENU_MY_SETTING,

MENU_MY_SETTING1,

MENU_MY_SETTING2,

2.在..\plutommi\Customer\CustResource\PLUTO_MMI目录下的Ref_list.txt中添加三个字符串:

STR_MY_SETTINGUndefined10MySettingMySetting我的设定我的设定

STR_MY_SETTING1Undefined10MySetting1MySetting1我的设定1我的设定1

STR_MY_SETTING2Undefined10MySetting2MySetting2我的设定2我的设定2

3.在..\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的Res_Setting.c增加如下

资源:

ADD_APPLICATION_MENUITEM((MENU_MY_SETTING,MAIN_MENU_SETTINGS_MENUID,2,MENU_MY_SETTING1,MENU_MY_SETTING2,SHOW,MOVEABLEWITHINPARENT,

DISP_LIST,STR_MY_SETTING,0));

ADD_APPLICATION_MENUITEM((MENU_MY_SETTING1,MENU_MY_SETTING,0,SHOW,

MOVEABLEWITHINPARENT,DISP_LIST,STR_MY_SETTING1,0));

ADD_APPLICATION_MENUITEM((MENU_MY_SETTING2,MENU_MY_SETTING,0,SHOW,

MOVEABLEWITHINPARENT,DISP_LIST,STR_MY_SETTING2,0));

ADD_APPLICATION_IMAGE2(IMG_MY_SETTING,CUST_IMG_PATH"\\\\MainLCD\\\\SubMenu\

\\\Settings\\\\MY_SETTING.GIF","MySetting.");

ADD_APPLICATION_STRING2(STR_MY_SETTING,"MySetting","MySetting");

ADD_APPLICATION_STRING2(STR_MY_SETTING1,"MySetting1","MySetting1");

ADD_APPLICATION_STRING2(STR_MY_SETTING2,"MySetting2","MySetting2");

4.在..\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的Res_MainMenu.c中修改如下:

ADD_APPLICATION_MENUITEM((MAIN_MENU_SETTINGS_MENUID,IDLE_SCREEN_

MENU_ID,5,

MENU9102_INITIAL_SETUP,

.

.

.

改为:

ADD_APPLICATION_MENUITEM((MAIN_MENU_SETTINGS_MENUID,IDLE_SCREEN_

MENU_ID,6,

MENU_MY_SETTING,

MENU9102_INITIAL_SETUP,

.

.

.

5.在..\plutommi\mmi\Setting\SettingInc\目录下的SettingProt.h中增加如下的函数声明:

voidHighlightMySetting(void);

voidHighlightMySetting1(void);

voidHighlightMySetting2(void);

voidEntryMySetting(void);

voidEntryMySetting1(void);

voidEntryMySetting2(void);

6.在..\plutommi\mmi\Setting\SettingSrc\目录下的SettingSrc.c中增加如下的函数定义:

voidHighlightMySetting(void)

{

SetKeyHandler(GoBackHistory,KEY_LEFT_ARROW,KEY_EVENT_DOWN);

SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);

SetKeyHandler(EntryMySetting,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);

SetLeftSoftkeyFunction(EntryMySetting,KEY_EVENT_UP);

}

voidHighlightMySetting1(void)

{

SetKeyHandler(GoBackHistory,KEY_LEFT_ARROW,KEY_EVENT_DOWN);

SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);

SetKeyHandler(EntryMySetting1,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);

SetLeftSoftkeyFunction(EntryMySetting1,KEY_EVENT_UP);

}

voidHighlightMySetting2(void)

{

SetKeyHandler(GoBackHistory,KEY_LEFT_ARROW,KEY_EVENT_DOWN);

SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);

SetKeyHandler(EntryMySetting2,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);

SetLeftSoftkeyFunction(EntryMySetting2,KEY_EVENT_UP);

}

voidEntryMySetting(void)

{

U16nStrItemList[MAX_SUB_MENUS];/*Storesthestringsidofsubmenusreturned*/

U16nNumofItem;/*Storesnoofchildreninthesubmenu*/

U8*guiBuffer;/*Bufferholdinghistorydata*/

U16ImageList[MAX_SUB_MENUS];

EntryNewScreen(SCR_MY_SETTING,NULL,EntryMySetting,NULL);

/*2Getcurrentscreentoguibufferforhistorypurposes*/

guiBuffer=GetCurrGuiBuf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1