MTK Modis 使用简介[转]

来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:49:49
MTK Modis 使用简介[转]
Modis PC仿真, 要进行如下操作:(假设工程路径为D:\X)
第一步:在如下目录中D:\X
执行  make Prj_Name GPRS gen_modis
第二步: 转到modis目录 D:\X\modis执行
createmodis.pl ..\make\Prj_Name_GPRS.mak
第三步:再切换到 D:\X
执行  make Prj_Name GPRS codegen_modis
第四步:最后转到D:\X\modis目录
执行   modiscodegen.pl ..\make\Prj_Name_GPRS.mak
第五步:开始使用Modis仿真--运行D:\X\modis\Modis.dsw,编译工程;
第六步:启动Modis->开机->Option->Luanch Catcher&NS,这样就可以进行模拟操作并从catcher中得到日志;
注意:老版本的Catcher下出现NS不能控制的情况。
每次改个东东都要ResGenerator.bat来编译
tools\chk_env 验证是否编译环境是否好了。
make Project gen_modis
make Project codegen_modis
可以自己写一个批处理文件,后面就比较的好生成
@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
if %1== gen_modis  goto PROJ_NAME
rem
if %1== codegen_modis goto PROJ_NAME
echo 第一个参数错误!
echo 查看帮助请执行: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
当然你要保证你的make2.pl里面关于编译器"cl"等路径是否正确
------------------------------------------------------------------
1)Generate MoDIS (modis.dsw & modis.dsp) 指令
mcu 指的是source 的根目錄
"mcu\make easyinfor23_07a_pmjgprs gen_modis"
2)Codegen MoDIS (產生所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 "
而第一次build MoDIS的話,以上三個步驟可由下面command 一次全部做完
"mcu\make easyinfor23_07a_pmj gprs new_modis"
若是只是修改字串or image的話,只要執行step 3即可
就是生成的modis vc工程中的dsw 和 dsp
---------------------------------------------------------------------
make easyinfor23_07a_pmj gprs new  重新编译
make easyinfor23_07a_pmj gprs resgen 编译资源
make easyinfor23_07a_pmj gprs r  只编译修改文件
修改完字符串或图片资源需要使用如下的命令使之应用:
make easyinfor23_07a_pmj gprs resgen
make easyinfor23_07a_pmj gprs r mmiresource
如果只想编译某个模块,如plutommi,则可以使用如下命令:
make easyinfor23_07a_pmj gprs r plutommi
要编译模拟器前,需要输入编译命令
make EASYINFOR23_07A_PMJ GPRS gen_modis
make EASYINFOR23_07A_PMJ GPRS codegen_modis
------------------------------------------------------------------
我用VC编译模拟器时出现了下面的错误:
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
执行 link.exe 时出错.
缺少一些库的支持,链接需要的这些库链接器找不到,问题一般有两个,一是缺少这些库文件,比如GTIO或GTS等,二是makefile文件中链接选项没有加入库文件名。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ray_xie156/archive/2009/12/16/5020333.aspx