现在的位置: 首页 > 综合 > 正文

MSTAR平台编译说明

2013年08月22日 ⁄ 综合 ⁄ 共 5662字 ⁄ 字号 评论关闭

如何联编?

1) 支持 编译模拟器

2)EMMI版本都支持 make release_ibuild 

3)每台联网的机器包括服务器都要另外安装IncrediBuild_Target.exe;
4)要安装3.5以上版本的incredibuild,并且安装盘要是NTFS格式的;
5) 2.01.18和2.02.33版本以上才支持cygwin下的分布式编译,编译命令为make release_ibuild.

6) IncrediBuild_Target.exe 这个工具在网上搜搜有的。
7) 可以不安装IncrediBuild_Target.exe也是可以的。
如果不安装IncrediBuild_Target.exe就要修改每台机器的C:\\ARM\\Licenses\\license.dat文件,把所有的HOSTID=XXXXXXXXX 改成:HOSTID="ANY" TS_OK

合理地使用Target命令,能够减少编译的时间和提高解决问题的速度。现在对Target的常用命令做个总结,希望对大家以及后来的新人有帮助。
make release_ibuild:利用increbuild做分布式编译,要搭服务器;
make release_ibuild XRG=1:这个命令可以直接跳过资源的编译过程,不编译资源;
make release_speed XRG=1:上同;
make release_speed_cus0:编译整个工程,但只编译第一个资源包;
make mmi_cus: 编译资源;
make clean_mmi_cus: clean 资源;
make mmi_cus0:只编译第一个资源包;
make mmi_cus;make e2p:结合这两个命令,可以直接运行模拟器;
make clean_lib TARGET=: 只清除lib name 的library,例如make clean_lib TARGET=3rd;
sh ./mg.sh xxx: 使用这个命令可以单独编译某个模块,例如:如果发现我们更改的文件在3rd目录里,我们就可以使用sh ./mg.sh 3rd;
make release_mmi_app:如果只改了app目录下的文件,就可以使用这个命令来编译;类似的还有make release_mmi_drv;make release_mmi_srv;make release_mmi_3rd等等;
make help:如果不知道使用什么命令,可以使用这个命令求助,也可以在工程目录下…\\proj\\makefile文件中找到所有的命令。 

直接把CygwinPortable.exe解压缩到C盘根目录即可,不需要单独安装rvct和cygwin;
运行C盘根目录的cygwin.bat,切换目录至proj下,新工程config使用./tng/configure.pl命令;
新编译使用make release_speed或者make release_build命令,一般使用前者,编译速度会快一些;
不能直接使用make命令编译,这样会出现cannot find source of "arm_copro_s"的错误;
如果只是修改虚拟机的部分,使用make release_3rd命令,这样只编译3rd部分,速度较快;
如果修改了mmi部分,使用make release_mmi命令;

根据修改的mmi里面的模块部分,也可以选择下面的编译命令:
make release_mmi_app;make release_mmi_core;release_mmi_mae等。

mstar编译较慢,尽量选择模块化编译,直接make release_speed会比较慢,
只在修改了make文件中的选项时才需要make release_speed

生成dz文件的命令:make dz_normal或make dz_redownload

Make mmi_cus:编译资源;make release_mmi_srv:编译mmi_srv

可以多条make命令一起使用,中间用分号区别,比如make release_mmi_app;make release_mmi_srv;make release_3rd

编译MSTAR模拟器
./tng/configure.pl
make clean
make e2p;make mmi_cus 

编译MSTAR手机BIN
./tng/configure.pl
make clean
make release_speed

Cygwin安装好后,启动它,默认会进入Cygwin的虚拟目录;
要想一启动Cygwin就切换到指定的目录,只要用文本编辑器打开Cygwin安装目录下home/.bashrc文件,在文件末尾加入相应的命令即可!

比如,MSTAR用懒人安装包CygwinPortable.exe,默认安装到C盘根目录后,只要在C:\CygwinPortable\home\.bashrc文件后,
加上cd "d:\v2.04_m100\proj"的命令,即可达到“Cygwin一启动,就切换到目录d:\v2.04_m100\proj下”的功能。

MSTAR编译时,不想编译资源,可以在编译命令后面,加“XRG=1”,比如:make speed XRG=1

如果想只编译某个文件夹,可以用命令“sh ./mg.sh + 模块”,比如:sh ./mg.sh 3rd

按模块编译的命令,都定义在Final_product.mak中,比如:
release_mdl
release_drv
release_sys
release_3rd
release_libs
release_final
release_e2p
release_mmi
release_mmi_app
release_mmi_srv
release_mmi_mae
release_mmi_mae_porting
release_mmi_core
release_mmi_common
release_mmi_widget
release_mmi_model
release_mmi_res
release_mmi_SrvWrapper
release_mmi_AppLauncher
clean
clean_mmi
clean_mae
clean_mmi_cus

把下载文件打包命令:
dz_normal
dz_redownload

模拟器工程文件:proj\MStarStudio_UP\MStarDeveloper\XMMI\MMI_BuildAll_cus.sln
运行时选择:proj\MStarStudio_UP\MStarDeveloper\XMMI\debug\MStarSimulator.exe
产品:8533n_mb303av2
配置:HVGA
资源:TP_DefaultLangPack0000.CUS

XRG是MSTAR编译资源的工具。

BuildAll是Clean所有CUS后,重新编译。挺耗时的,但能确保所有修改都编进CUS文件里。

Build不Clean,直接根据有无新的修改,进行编译,比BuildAll耗时要少得多;
它根据XML(image_list.xml,CHINESE_S.xml等)的修改时间与CUS的创建时间作对比,如果XML修改过,就重新编译它。
但很多时候,比如只替换了image目录下的图片,XML文件未修改过,这时,就会出现新替换的图片没编进去的现象。
出现这种情况时,只需用notepad打开相应的XML,加个空格再删除,然后保存它再用Build编,即可。

MSTAR的资源(文本String,图片Image,声音Melody,排版RS;PLMN,字体Font,输入法IME,手写Handwriting等)都是用XRG统一管理的。
很多资源(文本String,图片Image,声音Melody,排版RS等)都是按应用Applet组织的;
而有些资源(PLMN,字体Font,输入法IME,手写Handwriting等)是系统的。

打开Open一个工程Solution后,鼠标右键单击Solution,弹出菜单里有个“Export Excel(*.xls)...”和“Import Excel(*.xls)...”。
前者将整个项目的文本String资源,导出到一个Xls文件中,修改后,可以用后者导入。这种功能,某些时候很有用。

Model的继承关系
IModel
--IDataModel
--IIMEAssistModel
--IInterfaceModel
--ISoftkeyModel
--ITextModel
--IListModel
----IArrayModel
----IVectorModel
------IMenuModel

Widget的继承关系
WidgetBaseEx_t
--ContainerBase_t
----AbsContainerBase_t
------GadgetContainer_t
------_Softkeyboard_HighlightWdg_t
------AliveWidget_t
------AnimationContainer_t
------DesktopWdg_t(DECLARE_BASECLASS_DESKTOPWIDGET)
--------AclockDesktopWdg_t
--------BasicDesktopWdg_t
--------CalendarDesktopWdg_t
--------DclockDesktopWdg_t
--------FmDesktopWdg_t
--------InfoDesktopWdg_t
--------MpDesktopWdg_t
--------NoteDesktopWdg_t
--------OpDesktopWdg_t
--------PedometerWdg_t
--------PetDesktopWdg_t
--------ProfileWdg_t
--------SearchDesktopWdg_t
------DoubleItemWidget_t
------_EventWidget_t
------_FCDateWidget_t
------_FCTimeWidget_t
------_MAE_GlowTextWidget
------IFoneWidget_t
------_MAE_OptionMenuWidget
------_MAE_PopupSelectWidget
------RootContainer_t
------_ShortcutBarWidget_t
------_MAE_SlideSwitchWidget
------_MAE_StatusBarWidget
------WdgVolume_t
----PropContainerBase_t(PropContainer_t)
------CommonPickItem_t
------WdgImageDoubleItem_t
------_ImageTextImageWdg_t
------InputCandidateWidget_t
------PropCircleContainer_t
------_MAE_SoftKeyboardWidget
------_MAE_SoftkeyWidget_t
----MFLContainer_t
----SheetContainer_t
----_ViewerContainer_t
--DecoratorEx_t
----GridWdgBase_t
----MainMenuAnimatedWdg_t
----ImageWidget_t
----_IMEAssistWidget_t
----InputGridWidget_t
----InputHelperWidget_t
----MenuWidget_t
----PickWidget_t
----_RingListWidget_t
----ScrollbarWidget_t
----_ScrollIndicatorWdg_t
----SIIWdg_t
----TabWidget_t
----_TitleWidget_t
----WdgTransition_t
----ViewportWdg_t
--WdgBasicBmp_t
--FlipEffectWdg_t
--GlFotoListWdgBase_t
----GlBoxListWdg_t
----GlContactBrowserWdg_t
--WdgBitmap_t
--_ButtonWidget_t
--WdgCanvas_t
--CaretWidget_t
--WdgDateIcon_t
--WdgDummy_t
--WdgFadeout_t
--FormatInputWidget_t
--_MAE_HandWritingWdg_t
--_IndicatorWidget_st
--InputWidget_t
--Kmx_PopupWidget_t
--Kmx_SoftkeyboardWidget_t
--WdgOsd_t
--WdgProgress_t
--_PullDownWidget_t
--_StatisticsChart_Widget_t
--SwitchIconWidget_t
--TextWidget_t
--WdgTimerFormat_t

0、在Advanced的标签页,选择项目所用的FLASH类型,2.04_M100用的是NAND的。
1、在Download的标签页,选择编译产生的\build\8533n_m100\out目录
2、选择e2p文件和cus文件
3、选择CPU类型
4、手机去电池,链接USB线,选择相应的USB口和速率
5、点“Start“开始下载,USB下载很快,1分钟内就能搞定

高级技巧:
用make release_speed的命令编译完成后,可以用make dz_normal将上述需要下载的问题打包成dz文件。
然后,在Download标签页选择DZ File,选择USB口后,点“Start”即可开始下载!

抱歉!评论已关闭.