Modis PC仿真, 要進(jìn)行如下操作:(假設(shè)工程路徑為D:\X)
第一步:在如下目錄中D:\X
執(zhí)行 make Prj_Name GPRS gen_modis
第二步: 轉(zhuǎn)到modis目錄 D:\X\modis執(zhí)行
createmodis.pl ..\make\Prj_Name_GPRS.mak
第三步:再切換到 D:\X
執(zhí)行 make Prj_Name GPRS codegen_modis
第四步:最后轉(zhuǎn)到D:\X\modis目錄
執(zhí)行 modiscodegen.pl ..\make\Prj_Name_GPRS.mak
第五步:開始使用Modis仿真--運(yùn)行D:\X\modis\Modis.dsw,編譯工程;
第六步:?jiǎn)?dòng)Modis->開機(jī)->Option->Luanch Catcher&NS,這樣就可以進(jìn)行模擬操作并從catcher中得到日志;
注意:老版本的Catcher下出現(xiàn)NS不能控制的情況。
每次改個(gè)東東都要ResGenerator.bat來編譯
tools\chk_env 驗(yàn)證是否編譯環(huán)境是否好了。
make Project gen_modis
make Project codegen_modis
可以自己寫一個(gè)批處理文件,后面就比較的好生成
@echo off
rem *************************************************************************
rem
rem rem
rem DESCRIPTION
rem MT6225_gemini project master build batch file
rem
rem Author Date Description
rem
rem
rem *************************************************************************
@echo off
rem -----------------------------
rem Check release project
rem -----------------------------
if %1%0==%0 goto help
if %1%0==help%0 goto help
if %1%0==/?%0 goto help
if %1== new goto PROJ_NAME
if %1== update goto PROJ_NAME
if %1== remake goto PROJ_NAME
if %1== label_build goto PROJ_NAME
if %1== clean goto PROJ_NAME
if %1== get goto PROJ_NAME
if %1== codegen goto PROJ_NAME
if %1== emigen goto PROJ_NAME
if %1== emiclean goto PROJ_NAME
if %1== new_modis goto PROJ_NAME
rem <modis step1>
if %1== gen_modis goto PROJ_NAME
rem <modis step2>
if %1== codegen_modis goto PROJ_NAME
echo 第一個(gè)參數(shù)錯(cuò)誤!
echo 查看幫助請(qǐng)執(zhí)行:do 或 do help 或 do /?
goto end
rem *************************************************************************
rem void JinMa-01( void )
rem *************************************************************************
:PROJ_NAME
echo *** Start building project PROJ_NAME(%1) ***
call Make.bat custom=PROJ_NAME gprs %*
goto end
rem *************************************************************************
rem void help( void )
rem *************************************************************************
:help
echo.
echo Help:
echo do "action" ["build_label"/"modules"]
echo.
echo action = new (clean, scan, codegen, compile, link) (default)
echo = update (scan, compile, link)
echo = remake (compile, link)
echo = label_build (clean, retrieve, scan, compile, link)
echo = clean (clean)
echo = get (retrieve)
echo = codegen (codegen)
echo.
echo build_label = version label (e.g., ) [Case sensitive](OPTIONAL)
echo.
echo modules = component module name (nucleus, l1, ...)(OPTIONAL)
echo.
pause
echo Example:
echo do new
echo do codegen
echo do update
echo do update drv
echo do update init custom
echo do remake
echo do remake init
echo do remake custom drv
echo do clean
echo do clean init
echo do clean init custom drv
echo.
goto end
:end
call tools\time1
echo build end
當(dāng)然你要保證你的make2.pl里面關(guān)于編譯器"cl"等路徑是否正確
------------------------------------------------------------------
1)Generate MoDIS (modis.dsw & modis.dsp) 指令
mcu 指的是source 的根目錄
"mcu\make easyinfor23_07a_pmjgprs gen_modis"
2)Codegen MoDIS (產(chǎn)生所MoDIS需的Database)
"mcu\make easyinfor23_07a_pmj gprs codegen_modis"
3)Build MoDIS
1.使用VC++ 6.0 開啟MoDIS.dsw, build ..
2. or "mcu\make <-release/-debug> easyinfor23_07a_pmj gprs <clean_modis/remake_modis>"
而第一次build MoDIS的話,以上三個(gè)步驟可由下面command 一次全部做完
"mcu\make easyinfor23_07a_pmj gprs new_modis"
若是只是修改字串or image的話,只要執(zhí)行step 3即可
就是生成的modis vc工程中的dsw 和 dsp
---------------------------------------------------------------------
make easyinfor23_07a_pmj gprs new 重新編譯
make easyinfor23_07a_pmj gprs resgen 編譯資源
make easyinfor23_07a_pmj gprs r 只編譯修改文件
修改完字符串或圖片資源需要使用如下的命令使之應(yīng)用:
make easyinfor23_07a_pmj gprs resgen
make easyinfor23_07a_pmj gprs r mmiresource
如果只想編譯某個(gè)模塊,如plutommi,則可以使用如下命令:
make easyinfor23_07a_pmj gprs r plutommi
要編譯模擬器前,需要輸入編譯命令
make EASYINFOR23_07A_PMJ GPRS gen_modis
make EASYINFOR23_07A_PMJ GPRS codegen_modis
------------------------------------------------------------------
我用VC編譯模擬器時(shí)出現(xiàn)了下面的錯(cuò)誤:
Creating library...
--------------------Configuration: PC_Simulator - Win32 Debug--------------------
Compiling...
PC_Simulator.cpp
MMITask.c
e:\5602-nogps-nojava\plutommi\mmi\framework\tasks\taskssrc\mmitask.c(2018) : warning C4101: 'rsp_msg' : unreferenced local variable
e:\5602-nogps-nojava\plutommi\mmi\framework\tasks\taskssrc\mmitask.c(2351) : warning C4013: 'InitTime' undefined; assuming extern returning int
e:\5602-nogps-nojava\plutommi\mmi\framework\tasks\taskssrc\mmitask.c(2891) : warning C4013: 'LoadIPNumbers' undefined; assuming extern returning int
e:\5602-nogps-nojava\plutommi\mmi\framework\tasks\taskssrc\mmitask.c(2897) : warning C4013: 'LoadBlackListNum' undefined; assuming extern returning int
Linking...
Creating library Debug/PC_Simulator.lib and object Debug/PC_Simulator.exp
LIBCD.lib(crt0init.obj) : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
MMI.lib(MiscFunctions.obj) : error LNK2001: unresolved external symbol _GPIO_WriteIO
MMI.lib(MiscFunctions.obj) : error LNK2001: unresolved external symbol _GPIO_InitIO
MMI.lib(MiscFunctions.obj) : error LNK2001: unresolved external symbol _GPIO_ModeSetup
MMI.lib(Events.obj) : error LNK2001: unresolved external symbol _TurnOffLED
MMI.lib(Events.obj) : error LNK2001: unresolved external symbol _TurnOnLED
MMI.lib(IdleApp.obj) : error LNK2001: unresolved external symbol _GTS_COMMON_CloseActiveGame
MMI.lib(IdleApp.obj) : error LNK2001: unresolved external symbol _GTS_COMMON_GetActiveGameID
MMI.lib(mdi_audio.obj) : error LNK2001: unresolved external symbol _GTS_COMMON_GetActiveGameID
MMI.lib(SoundEffect.obj) : error LNK2001: unresolved external symbol _earphone_magnitude
MMI.lib(MainMenu.obj) : error LNK2001: unresolved external symbol _mmi_java_start_hexin
MMI.lib(VdoPlyApp.obj) : error LNK2001: unresolved external symbol _vdo_sfmp4_is_active
MMI.lib(VdoPlyApp.obj) : error LNK2001: unresolved external symbol _lcd_power_down
MMI.lib(VdoPlyApp.obj) : error LNK2001: unresolved external symbol _kal_prompt_trace
MMI.lib(PhoneBookStubsToOthers.obj) : error LNK2001: unresolved external symbol _mmi_phb_quick_search_list_pre_entry
MMI.lib(AudioPlayerSrc.obj) : error LNK2001: unresolved external symbol _g_usb_just_plug_out
MMI.lib(Game.obj) : error LNK2001: unresolved external symbol _GTS_Fish_Entry
MMI.lib(Game.obj) : error LNK2001: unresolved external symbol _GTS_Ramiel_Entry
MMI.lib(Game.obj) : error LNK2001: unresolved external symbol _GTS_Minatour_Entry
MMI.lib(Game.obj) : error LNK2001: unresolved external symbol _GTS_Tianshan_Entry
MMI.lib(Game.obj) : error LNK2001: unresolved external symbol _mmi_gx_qq_enter_gfx
MMI.lib(wgui_fixed_menuitems.obj) : error LNK2001: unresolved external symbol _GetImageIconHight
Debug/PC_Simulator.exe : fatal error LNK1120: 20 unresolved externals
執(zhí)行 link.exe 時(shí)出錯(cuò).
缺少一些庫(kù)的支持,鏈接需要的這些庫(kù)鏈接器找不到,問題一般有兩個(gè),一是缺少這些庫(kù)文件,比如GTIO或GTS等,二是makefile文件中鏈接選項(xiàng)沒有加入庫(kù)文件名。
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/ray_xie156/archive/2009/12/16/5020333.aspx