MTK移植全解
- 格式:doc
- 大小:541.50 KB
- 文档页数:19
●熟悉移植工具SI的使用项目文件用source insight 打开,在其开发过程混合着其平台本身的源代码,数量庞大,必须使用有效的代码编辑工具来管理。
在这里,推荐大家使用SourceInsight3.5版,如图1所示:图1SourceInsight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++、c#和Java等程序的分析功能。
SoureeInsight 能分析用户的工程源代码并在工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。
比如:需要修改h900项目中的h900yy_lingke_gprs.mak文件中的内容在source insight中的项目框中按图输入文件名(不区分大小写)●烧机工具Flash toolFlash tool :用来把项目编译出来后的.bin文件烧写进手机上的工具关于它的使用,在后面章节会有介绍二.移植配置配置前需要添加移植包内的文件移植包内容如下:添加的主程序文件夹,模块文件和路径将上述文件从移植包中复制到相应的目录下将移植包中的MyApp文件夹复制到H900\plutommi\mmi\中将移植包中的Res_Fight_Landlord.c文件夹复制到H900\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI中路径图:添加项目在编译时自动搜索路径●打开mmi_app.inc文件(H900\make\plutommi\mmi_app) 在里面添加以下红色内容(最好在最后一行)plutommi\mmi\Fight_Landlord\Fight_LandlordInc●打开mmi_app.pth 文件(H900\make\plutommi\mmi_app) 在最后一行添加以下红色内容plutommi\mmi\Fight_Landlord\Fight_LandlordSrc●打开makefile文件(H900\plutommi\Customer\ResGenerator)添加以下红色内容-I "../../MMI/netoxryie/netoxryieInc" \-I "../../mmi/smartMMI/inc" \-I "../../mmi/dym/inc" \-I "../../MtkApp/pollex/Pollex_NetWork/Inc" \-I "../../mmi/msmenu/inc" \-I "../../mmi/msminiproduct/msminicommon/inc" \-I "../../MMI/PoetrySms/PoetrySmsInc" \-I "../../mmi/Fight_Landlord/Fight_LandlordInc"打开mmi_app.lis文件(H900\make\plutommi\mmi_app) 在最后一行添加以下红色内容plutommi\mmi\Fight_Landlord\Fight_LandlordSrc\Fight_LandlordSrc .cplutommi\mmi\Fight_Landlord\Fight_LandlordSrc\mysocket.cplutommi\mmi\Fight_Landlord\Fight_LandlordSrc\GobangAI.cplutommi\mmi\Fight_Landlord\Fight_LandlordSrc\Gobang.c添加资源和代码修改MMIDataType.h在此处添加基础ID添加如下红色代码部分RESOURCE_BASE_RANGE(APP_PHOEDT, 300),RESOURCE_BASE_RANGE(APP_MESSAGE_CLUB, 1000),RESOURCE_BASE_RANGE(APP_ABREPEATER, 200),/*Schedule FM Radio Record*/RESOURCE_BASE_RANGE(APP_FMSCHEDULEREC, 200),/*Background Sound Effect*/RESOURCE_BASE_RANGE(APP_BGSOUND, 200),/***************************************************************** *Fight_Landlord*****************************************************************/RESOURCE_BASE_RANGE(Fight_Landlord, 300),………………………………………………………………../************************************************************************* **** Main Menu************************************************************************** ***/#define MAIN_MENU_BASE ((U16) GET_RESOURCE_BASE(APP_MAINMENU))#define MAIN_MENU_BASE_MAX ((U16) GET_RESOURCE_MAX(APP_MAINMENU))RESOURCE_BASE_TABLE_ITEM(APP_MAINMENU)/************************************************************************* **** Fight_Landlord************************************************************************** ***/#define Landlord_BASE ((U16) GET_RESOURCE_BASE(Fight_Landlord))#define Landlord_BASE_MAX ((U16) GET_RESOURCE_MAX(Fight_Landlord))RESOURCE_BASE_TABLE_ITEM(Fight_Landlord)修改MMI_featuresPLUTO_switch.h在此处添加MMI的开关添加如下红色代码部分/*Description: To enable the display of originator address of push message.Option: [__ON__, __OFF__, __AUTO__]Reference: n/a*/#define CFG_MMI_PUSH_SHOW_SENDER_ADDR (__OFF__)#define__MMI_MY APP__#endif /* __MMI_FEATURES_SWITCH_H__ */添加图片资源H900\plutommi\Customer\Images\PLUTO240X320_YY_LK\MainLCD 中添加移植包中的landlord文件夹。
到该路径的上级目录中,H900\plutommi\Customer\Images\PLUTO240X320_YY_LK\的image.zip里也作相应操作,在image.zip中的MainLCD中也添加img_MyApp文件夹修改ref_list.txt添加字符串资源把H900\plutommi\Customer\CustResource\H900YY_LINGKE_MMI下的ref_list.txt资源文件用editplus等编辑工具打开,在里面添加如下红色代码:STR_Landlord_BASE_LOGIN Undefined 40 Landlord Landlord 手机斗地主手机斗地主STR_GAME_TERRACE Undefined 40 棋牌社棋牌社棋牌社棋牌社STR_GOBANG_ID Undefined 40 五子棋五子棋五子棋五子棋STR_HELP_ID Undefined 40 help help 帮助帮助STR_INPUT_NICKNAME Undefined 40 input_nickname input_nickname 输入用户名输入用户名##number 13855每个单词用TAB键隔开添加GlobalMenuItems.h添加菜单ID打开GlobalMenuItems.h (h900\plutommi\mmi\inc)并添加如下代码(红字部分)#ifdef __MMI_IMAP__MENU_ID_IMAP,#endif#if defined (_R2G_MUSIC_PLAYER_)MENU_ID_R2G_MUSIC_PLAYER,#endif#ifdef __PERUN_MTK__MENU_ID_PERUN_APP_START, //mark_dxdMENU_ID_PERUN_END = MENU_ID_PERUN_APP_START + 10,#endif /*__PERUN_MTK__*//************************************************************Fight_Landlord************************************************************/MENU_ID_FIGHT_LANDLORD_LOGIN,修改mmitask此文件是资源装载预编译程序的mmitask添加如下红色部分#ifdef __POLLEX_APPLICATION__extern void pollex_menu_init(void);extern void pollex_fee_init(void);#endif/***********************************************************fight_landlord**********************************************************/extern void mmi_fight_landlord_login_init(void);……………………………….………………..#ifdef _R2G_MUSIC_PLAYER_Init_r2g_music();#endif/*********************************************************fight_landlord********************************************************/mmi_fight_landlord_login_init();}修改PopulateRes.cMTK_resgenerator.exe在执行时会调用这里的PopulateResData 添加如下红色部分#ifdef __MMI_RESOURCE_ENFB_SUPPORT__extern FILE *enfb_img_data_file;//100206 ENFB support#endif/************************************************************************* **** Global Function - Extern************************************************************************** ***//* Populate without compile option *//************************************Fight_Landlord************************************/extern void PopulateFightRes(void);……………………..…………………….............../****************************************Fight_Landlord***************************************/RES_PRINT_INFO("Populating Fight Resources\n");PopulateFightRes();修改TimerEvents.h在此处添加定时器#ifdef __PERUN_MTK__PERUN_TIMER_START,PERUN_TIMER_END = PERUN_TIMER_START +20,#endif /*__PERUN_MTK__*/CARD_TIMER_ID,GAME_TERR_TIME_1,GOBANG_TIMER_1,MAX_TIMERS /* Imp: Please do not modify this */} MMI_TIMER_IDS;#endif /* _PIXCOM_TIMER_EVENT_H */修改Res_MainMenu.c在其中添加入口,即菜单选项如果位置变换其菜单位置也会变换有三个void PopulateMainMenuRes(void)函数如下的添加在第二个函数中的如下黑色代码位置,#else和#endif之间添加以下红色代码:ADD_APPLICATION_MENUITEM2((MAIN_MENU_FUNANDGAMES_MENUID,IDL E_SCREEN_MENU_ID,MENU_ID_FIGHT_LANDLORD_LOGIN,#ifdef __GAME_LOADER__#ifdef __WUHAN_SP_MLNS__MENU_GAME_MTXS,MENU_GAME_MLNS,#endif#ifdef __WUHAN_SP_PNGS__MENU_GAME_PNGS,#endif#ifdef __WUHAN_SP_YLZX__MENU_GAME_YLZX,#endif三.编译项目当全部工作做完后,点击运行输入cmd输入DOS命令进入到h900项目文件夹里然后键入make h900yy_lingke gprs resgen再回车,这个操作表示把修改的资源重新编译资源编译完以后,出现如下图的样式,表示已经成功完成该操作接下来正式开始编译项目,输入make h900yy_lingke gprs remake回车编译完成以后,出现如下图的样式,表示已经编译完成且无误了。