MTK软件编译

合集下载

MTK平台11B软件编译环境若干问题的解决

MTK平台11B软件编译环境若干问题的解决

MTK平台11B软件编译环境若干问题的解决ken.linchunde MTK平台从10A之后要求使用RVCT来编译软件,而由于RVCT的破解问题,使得软件编译环境的建立困难重重,单单破解license就花费了不少时间,遇到问题在网上搜索,几乎找不到解决方法,使得我不得不研究起MTK平台的编译过程。

以下若干问题都是建立11B软件编译环境时遇到的,我给出了解决方案,仅供参考。

一、编译工具的安装:所需工具Perl,ADS12,RVCT,VS2008,先安装ADS12,再安装RVCT,然后Perl和VS2008详细说明RVCT的安装过程:第1步,运行RVDS_3_1 (I)\ setup.exe,一直下一步,选择RVCT Only,一直下一步到安装license界面,选择install license,下一步选择license文件(RVCT\Licenses\rvds.dat),点击add,选择是,下一步,完成。

第2步,破解复制RVCT\crack下面的三个文件到安装目录C:\Program Files\ARM,双击crack.bat第3步,复制RVCT3.1-PATCH-1021里的armar.exe到相应的目录: armar.exe所在安装目默认为C:\Program Files\ARM\RVCT\Programs\3.1\569\win_32-pentium\(解决“Fatal error: L6016U: Symbol table missing/corrupt inxxx.lib” 此Link Error)第4步,修改RVDS.dat修改 C:\Program Files\ARM\Licenses\rvds.dat, UE 打开,找到 HOSTID字段, 以电脑A的MAC地址替换之, 要替换19个。

二、安装后环境变量:Path变量值为:C:\Program Files\ARM\bin\win_32‐pentium;C:\Perl\site\bin;C:\Perl\bin;C:\Program Files\ARM\RVCT\Programs\3.1\569\win_32‐pentium;C:\ProgramFiles\ARM\Utilities\FLEXlm\10.8.5.0\1\win_32‐pentium;C:\ProgramFiles\ARM\ADSv1_2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\W bem;C:\Program Files\ARM\RDI\Deprecated\1.3.1\1\windows;C:\Program Files\TortoiseSVN\bin三、编译过程出错及解决方法:1、make: *** 【mmi_feature_check】Error 1错误信息如图所示,查看log文件mmi_check.log,提示 “找不到文件 系统找不到指定的路径”。

Mtk编译说明

Mtk编译说明

MTK学习任务1、搭建编译环境首先需要安装如下3种软件:1)VC++6.0软件2)PDF(安装版)3)Excel软件其次,安装“MTK编译环境”目录下3个软件:Ads1.2,4554_ADS12_848_Windows.exe(UZIP),ActivePerl,默认安装即可。

另外:可以安装sourceInsight软件,以方便代码阅读。

2、工程编译Make目录下的F619_GEMINI_GPRS.mak标识了本工程的工程名为F619_GEMINI,obj文件生成目录为build\F619_GEMINI\gprs,生成的bin文件位于build\F619_GEMINI 目录下(F619_GEMINI_PCB01_gprs_MT6225_S00.GM700_V00.bin)。

常用编译指令(各编译参数的具体含义请参考System Architecture.pdf)命令格式:make 工程名obj生成路径命令模块(可选)cmd工具目录:工程目录下的cmd.exemake F619_GEMINI gprs new编译新工程make F619_GEMINI gprs r(remake)只编译有更新/改动的工程make F619_GEMINI gprs new_modis重新编译modismake F619_GEMINI gprs r mmi_app只编译mmi_app工程(mmi_app为需要编译的工程,可以是项目中的其他工程)make F619_GEMINI gprs emiclean 编译。

清理excelmake F619_GEMINI gprs emigen添加资源后必须resgen编译,方可生效。

E:\gm700_4\build\F619_GEMINI\log目录下记录了所有编译的信息,使用make命令编译工程时,可以在此目录下查阅到相关的编译信息。

E:\gm700_4\build\F619_GEMINIMT6225.log记录了整个F619工程的总体编译情况添加工程文件在E:\gm700_4\make\plutommi\mmi_app目录下添加新增的文件路径在E:\gm700_4\make\plutommi\mmi_framework目录下mmi_framework.inc文件中添加新增的头文件路径具体的参考文件中的路径加入格式。

MTK编译命令详细介绍

MTK编译命令详细介绍
主要完成的工作 gsm2.mak
mcp_check cleanlog cleanbin genverno libs $(BIN_FILE) done
功能: remake是重新编译整个工程的ARM版,该动作只是简单的重新编译链接有改动的部分。它不检查依赖关系.不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编。
过程简要说明:remake->mcp_check->cleanlog->cleanbin->genverno->libs->$(BTLD_BIN_FIKE)->cmmgen->done。
依赖指令:mcp_check,cleanlog,cleanbin,genverno,libs,$(BIN_FIKE),cmmgen,done。其中最重要的两个指令是libs,$(BIN_FIKE)。Libs调用编译器和连接器将各个模块目录下的C文件编译连接为独立的库。$(BIN_FIKE)是将各个模块编译连接的库和mtk_lib目录下的库一起连接起来得到一个映像文件,然后使用ADS的工具fromelf将映像文件生成以变量BIN_FILE命名的二进制文件,该文件可以下载到硬件板上运行。
New 清除并重新编译所有的文件
主要完成工作 gsm2.mak
cleanall cmmgen mmi_feature_check asngen codegen asnregen operator_check_lite update
功能:全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做。在构建工程过程中,清除所有的目标文件,库文件,日志文件等。New指令还会自动创建必要的目录、移除临时文件和中间脚本、更新日志文件。

Mtk Android编译命令

Mtk Android编译命令

banyan_addon 建立MTK sdk addon
cts 建立cts包
bootimage 编译boot映像
cacheimage 编译cache映像
systemimage 编译系统映像
mrproper 移除所有产生的文件+config+。。。
mm 通过android本地命令“mm”编译模块
emigen 产生EMI设置源代码
nandgen 生成支持nand flash设备列表
codegen 生成跟踪DB(META/凯瑟等使用的工具)。
userdataimage 编译用户数据映像
target--packege 编译目标文件包
updataepackege 编译更新包
dist 编译分发包
Modules:
pl, preloader : Specify to build preloader.
snod 没有依赖的情况下去编译系统映像
recoveryimage 编译恢复映像
secroimage 编译secro映像
factoryimage 编译工厂映像
userdataimagenodeps 没有依赖的情况去编译用户数据映像
NULL 编译所有
(makeMtk|mk) [options] project actions [modules]
options:
-t 打印标准输出信息
-o 通过附加参数去make
project:
一个可用的项目(可以用mk listp来查看有哪些可用项目),或则缺省(延续上一次的项目)
lk : Specify to build little kernel.
ub, uboot : Specify to build uboot.

MTK安卓编译环境搭建

MTK安卓编译环境搭建

编译MTK安卓模拟器
• 1.编译MTK SDK包:./mk banyan_addon • 编译完成后在out/host/linux-x86/sdk_addon下,会有 mtk_sdk_api_addon-10.1.zip生成。 • 2.解压mtk_sdk_api_addon-10.1.zip • 将解压后的mtk_sdk_api_addon-10.1整个文件夹放在android原本的sdk 的add-ons目录下。 • 3.进入android的sdk:.\android-sdk\add-ons\mtk_sdk_api_addon10.1\emulator目录下,将其中的emulator.exe或者emulator(如果使用 linux的sdk的话)复制出来,覆盖.\android-sdk\tools下的emulator.exe。 • 4.创建新的AVD • 在Target里面选择带有MediaTek标志的,然后启动这一AVD就可以了。
• 2.下载JDK • /technetwork/java/jav ase/downloads/index.html 下载64位Linux版本
的jdk1.6,如:
• 下载完成后打开终端窗口,通过cd命令进入文件所在目录, 然后执行命令: ./jdk-6u37-linux-x64.bin 进行jdk安装。安 装完成后请在终端输入命令设置jdk环境变量:sudo gedit /etc/profile,在文件末尾加上: • #set java environment • export JAVA_HOME=/home/ytm52513/jdk1.6.0_37 • export PATH=$JAVA_HOME/bin:$PATH • export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.j ar • 修改后运行: . /etc/profile 立即生效。(.和/中有空格) • 其中, JAVA_HOME是各自电脑上jdk安装位置。完成后可 以在终端输入java –version查看jdk是否正确安装。至此, jdk安装完毕。

MTK程序编译--01

MTK程序编译--01

MTK程序编译--01一、MTK手机软件系统的构建过程Pc模拟版的构建通过调用如下命令实现。

system("$msdev MoDIS.dsw /MAKE \"$argu - Win32 $modisDir\"/OUT ${MoDISLogDir}\\${argu}.log")在这里$msdev就是VC的msdev,通过VC的工程文件MoDIS.dsw和后面的参数进行具体的构建过程。

熟悉VC工程的朋友应该比较清楚,因此就不再具体解释了。

之后将只以ARM版为主来讲解整个工程的构建过程。

ARM版的构建通过调用如下命令实现。

system("${makeCmd} -f${makeFolder}${myMF} -r -RCUSTOMER=$custom PROJECT=$project $action")在这里${makeCmd}是tools\make.exe,即GNU的make,${makeFolder}${myMF}是make\Gsm2.mak,$action是new、update、remake等。

变量CUSTOMER和PROJECT分别是客户名和项目名,在构建过程中将根据此两个变量的值选定项目相关的配置文件,从而实现客户化的定制。

通过给make指定ARM版的核心Makefile文件Gsm2.mak,开始了ARM版的构建过程。

Gsm2.mak文件中包含了Option.mak这个配置用的Makefile文件,另外还包含了一些以.tmp和.bld为后缀的由perl脚本make2.pl 生成的临时配置文件。

这些临时配置文件主要是一些action如clean、remake等所需的变量设置,及客户化和版本号等的一些信息。

Gsm2.mak控制了new、update、remake等动作的过程上面的构建过程的几个步骤中,最重要的两个步骤是libs、$(BIN_FILE) 。

Mtk编译说明

Mtk编译说明

MTK学习任务1、搭建编译环境首先需要安装如下3种软件:1)VC++6.0软件2)PDF(安装版)3)Excel软件其次,安装“MTK编译环境”目录下3个软件:Ads1.2,4554_ADS12_848_Windows.exe(UZIP),ActivePerl,默认安装即可。

另外:可以安装sourceInsight软件,以方便代码阅读。

2、工程编译Make目录下的F619_GEMINI_GPRS.mak标识了本工程的工程名为F619_GEMINI,obj文件生成目录为build\F619_GEMINI\gprs,生成的bin文件位于build\F619_GEMINI 目录下(F619_GEMINI_PCB01_gprs_MT6225_S00.GM700_V00.bin)。

常用编译指令(各编译参数的具体含义请参考System Architecture.pdf)命令格式:make工程名obj生成路径命令模块(可选)cmd工具目录:工程目录下的cmd.exemake F619_GEMINI gprs new编译新工程make F619_GEMINI gprs r(remake)只编译有更新/改动的工程make F619_GEMINI gprs new_modis重新编译modismake F619_GEMINI gprs r mmi_app只编译mmi_app工程(mmi_app为需要编译的工程,可以是项目中的其他工程)make F619_GEMINI gprs emiclean编译。

清理excelmake F619_GEMINI gprs emigen添加资源后必须resgen编译,方可生效。

E:\gm700_4\build\F619_GEMINI\log目录下记录了所有编译的信息,使用make命令编译工程时,可以在此目录下查阅到相关的编译信息。

E:\gm700_4\build\F619_GEMINIMT6225.log记录了整个F619工程的总体编译情况添加工程文件在E:\gm700_4\make\plutommi\mmi_app目录下添加新增的文件路径在E:\gm700_4\make\plutommi\mmi_framework目录下mmi_framework.inc文件中添加新增的头文件路径具体的参考文件中的路径加入格式。

MTK Make process

MTK Make process

Tab 缩进
注释
MTK平台 MTK平台Make file调用关系 平台Make file调用关系
Make.bat make2.pl REL_PROTOCO L_GPRS.mak
Darts6228_05c_gprs.mak
gsm2.mak
option.mak
comp.mak
Darts6228_05c_gprs.mak
Darts6228_05c_gprs.mak
Darts6228_05c_S.mak
功能:配置当前 功能:配置当前Release Package需要编译的模块 需要编译的模块
Option.mak
功能: 功能:设置编译环境所使用的工具的路径
com.mak
MTK平台编译命令 MTK平台编译命令 – 入口
编译命令入口为 make.bat,而make.bat会 , 会 再调用make2.pl进行参数预处理 再调用 进行参数预处理
MTK平台编译命令 MTK平台编译命令 – make.bat
高亮处为前两页显示的make 高亮处为前两页显示的 命令各个参数可能值列表
主要功能: 主要功能:
对当前Project进行配置,给编译过程设置一些变量 进行配置, 对当前 进行配置 重要的变量
PLATFORM/BOARD_VER LCD_MODULE INPUT_METHOD PHB_SIM_ENTRY /PHB_PHONE_ENTRY/PHB_LN_ENTRY BLUETOOTH_SUPPORT MAIN_LCD_SIZE RELEASE_PACKAGE
功能:维护 文件, 功能:维护dep文件,配置某些组件的编译选项。 文件 配置某些组件的编译选项。
Gsm2.mak

mtk_7620a_编译步骤说明

mtk_7620a_编译步骤说明

mtk_7620a_编译步骤说明openwrt 编译步骤编译步骤1. scripts/feeds update -a2. scripts/feeds install wifidog3. make menuconfig4. subtarget->MT7620a based boards选中5. basesystem->busybox 选择tftp, tftpd,它们下面的子选项也请选中6. network/cpative protals 选择wifidog7. Ralink Rroperties->driver->kmod-mt7620选中8. Ralink Properties->UI->luci-mtk选中9. Ralink Properties->Applications->uci2dat选中10. Ralink Properties->Applications->switch11. kernel modules->wireless drivers->kmod2800-soc和kmod-rt2x00-lib去掉12. 添加SDK工具支持13. utilites->strace选中14. 添加iptables会用到的第七层协议 package_l7-protocols-->network-->firewall-->l7-protocols(增加l7协议)15. luci-->application-->luci-app-p2pblock (增加Layer7、ipp2p支持)16. 增加iptables匹配扩展模块(u32 / iprange 等在编译时用“/”进行查找)](可附带选择PACKAGE_librt && PACKAGE_luci-app-firewall)17.增加bash兼容性(utilits/)od(busybox/coreutils)netlinkiconv13. make kernel_menuconfig14. ralink module->Port4 support, Port5 support去掉15. make V=snotice: 在make menuconfig 时选择了u32模块过后,在make kernel_menuconfig时就不用再选择u32模块了,不然编译出来无法使用,原因不明。

MTKandroid快速编译方法

MTKandroid快速编译方法

MTKandroid快速编译方法[FAQ10625] 提升Android编译速度Platform:MT6572MT6582MT6588MT6589MT6592MT6595M T6571MT6582/92+MT6290Branch:GB3JB2JB3JB5JB9GB5JB7FAQ Content[DESCRIPTION]Android codebase都很大,编译一次都需要花很多时间,如果是preloader/lk/bootimage还好,但是Android的话都是非常久。

实际上这个编译时间还是可以进一步缩短![KEYWORD]ccache编译时间提升降低[SOLUTION]1. 移除modules_to_check(1). Android默认是所有模块都会编译的(不管需不需要),这个有些冗余,可以通过修改编译系统不编译哪些没有用到的模块(2). 修改方法:alps/build/core/main.mkfiles: prebuilt \$(modules_to_install) \$(modules_to_check) \$(INSTALLED_ANDROID_INFO_TXT_TARGET)修改为:files: prebuilt \$(modules_to_install) \$(INSTALLED_ANDROID_INFO_TXT_TARGET)(3). 如果是ubi nand文件系统的项目(比如72 nand项目),还需要在alps/build/core/Makefile中:$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \$(INSTALLED_RAMDISK_TARGET) \$(INSTALLED_BOOTIMAGE_TARGET) \$(recovery_binary) \$(recovery_initrc) $(recovery_kernel) \$(INSTALLED_2NDBOOTLOADER_TARGET) \$(recovery_build_prop) $(recovery_resource_deps) \$(recovery_fstab) \$(recovery_gzip) $(recovery_sec_ko) \$(RECOVERY_INSTALL_OTA_KEYS)的前面添加:ifeq ($(TARGET_USERIMAGES_USE_UBIFS),true)$(INSTALLED_RECOVERYIMAGE_TARGET):$(recovery_ubiformat)endif否则会编译失败!(4). 修改后Android编译时间降低16%~18%(数据仅供参考)(5). 此种方法google已在4.3版本默认应用了。

MTK程序编译

MTK程序编译

MTK程序编译1. 编写目的本文编写的目的主要是从整体上理解MTK的编译过程,以便较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。

2. 简介MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的perl脚本或c程序,将资源包生成c源程序,并与相应模块的c程序.o,.lib 或.obj的中间代码,最终生成在手机上使用的.bin文件和在模拟器上使用的mmiresource.dll资源文件。

3. 编译环境A. 编译工具和辅助工具? ADS1.2? ADS1.2_update_848.exe? MSYS 版本:1.0.10? MinGW 版本:3.1.0? Gcc-core-3.3.1? Gcc-g++-3.3.1? ImageMagick 版本:6.3.6 Q16? 7-zip 版本:3.13? 注意:按照联发科技的要求,最好上述软件采用建议的版本,否则可能会出现异常情况,导致不能正常编译。

B. 编译环境搭建? 按默认路径安装ADS1.2,并安装848补丁包? 按默认路径安装Perl? 按默认路径安装7_zip? 安装MinGW先按默认路径安装MinGW安装包,然后解压gcc-core、gcc-g++的压缩包,讲解压后的两个文件夹复制到MinGW安装路径下。

? 安装MSYS? 安装ImageMagick,注意:按默认提示安装到Select Additional Tasks时,所有的选择全取消,后面再按默认安装。

? 复制7z.exe拷贝..\7_Zip\7z.exe 至..\plutommi\Customer\ResGenerator,并改名为7za.exe。

? 复制MinGW拷贝..\MinGW至..\Tools\MinGW。

? 复制MSYS拷贝..\msys\1.0至..\Tools\MSYS。

? 复制ImageMagick拷贝..\ImageMagick-6.2.5-Q16文件夹下全部文件至 ..\plutommi\Customer\ResGenerator目录下? 设置make.exe改名mingw32-make.exe(..\Tools\MinGW)为make.exe,并放在tools目录下。

MTK编译环境及常用工具介绍

MTK编译环境及常用工具介绍

MTK编译环境及常用工具介绍MTK(联发科技)是一家全球知名的芯片设计公司,广泛应用于移动设备、智能家居、物联网等领域。

在进行MTK芯片编译时需要配置相应的编译环境和使用常用工具,下面将介绍一些MTK编译环境和常用工具。

1.编译环境配置:(1)操作系统:MTK芯片的编译环境主要在Linux系统下进行,推荐使用Ubuntu等常见的Linux发行版。

(3)必要软件包:在编译MTK芯片时,需要安装一些必要的软件包,如make、gcc、g++、flex、bison等。

可以通过apt-get等包管理工具进行安装。

2.常用工具介绍:(1)MTK编译工具链:MTK提供的编译工具链包括编译器、链接器、调试器等,可以用于编译构建MTK芯片的固件。

编译工具链还包括了一些调试工具,如gdb调试器,可以用于调试MTK芯片的应用程序。

(2)MTKSDK:MTK提供了一套完整的软件开发工具包(SDK),包含了一系列的API、驱动程序、开发工具等,可以用于开发MTK芯片的应用程序。

MTKSDK还提供了一些示例代码和开发文档,方便开发者进行开发工作。

(3)MTK Flash Tool:MTK Flash Tool是一款用于MTK芯片刷机的工具,可以将固件刷入到MTK手机中。

该工具可以对手机进行读写分区、格式化、备份、恢复等操作,对于开发者来说非常有用。

(4)MTK Log Tool:MTK Log Tool是一款用于收集和分析MTK芯片的日志的工具,可以帮助开发者定位和解决问题。

该工具可以实时监控日志输出,并提供、过滤、导出等功能,方便开发者进行日志分析工作。

(5)MTK Trace Tool:MTK Trace Tool是一款用于跟踪MTK芯片的运行轨迹的工具,可以帮助开发者分析代码的执行过程。

该工具可以跟踪函数调用、变量赋值、条件判断等操作,生成相应的跟踪报告,方便开发者进行代码优化和性能分析。

(6)MTK WiFi Tool:MTK WiFi Tool是一款用于调试和测试MTK芯片的WiFi模块的工具,可以帮助开发者进行WiFi功能的调试和性能测试。

MTK环境搭建编译调试图解

MTK环境搭建编译调试图解

MTK环境搭建编译调试图解MTK使用文档开发环境所需软件。

ADSv1.2。

以及补丁(4554.exe)ActivePerl-5.6.1.638-MSWin32-x86MTKSDK(如国虹,06BW0712MP_1_AHONG28_06B_V18_MMI)SourceInsight3.5调试工具以及下载程序工具Catcher_v3.6.02FlashTool_v2.9.1007_6228开发环境安装方法。

先安装ADS。

需要注意的地方。

请选择C盘如图:这时,请将原目录的ADS\ADS\crackads12下的CRACK复制到C:\programfile\arm下。

点击Browse,选择C:\programfile\arm\CRACK下的LICENES.DAT其它的按默认安装,安装完成后,请安装补丁。

4554.exeunzip然后安装ActivePerl-5.6.1.638-MSWin32-x86。

Installer.bat然后按回车。

如图最后,将MTKSDK(如国虹,06BW0712MP_1_AHONG28_06B_V18_MMI)复制到自己喜欢的目录,但这个目录不能有中文名字。

如我复制到:E:\jiang\MTK\guohong程序编译方法下面是开始编译了。

第一次时用new这个时间大概要40分钟左右,建议把杀毒软件关掉命令:makecustom=AHONG28_06BGPRSnew编译完成程序下载到手机方法把FlashT ool_v2.9.1007_6228复制到跟MTK相邻的目录。

如我放到:E:\jiang\MTK\guohong选择相应的串口,如我的是com17开始时,需要设置两个路迳:点击DwonloadAgent点击Scatter-loading选择build\AHONG28_06B\AHONG28_06B_PCB04_gprs_MT6228_S02.MAUI_06B_W07_ 12_MP_1_V18.bin\scatAHONG28_06B.txt将下载线连接好手机。

MTK编译错误大全!

MTK编译错误大全!

MTK编译错误⼤全!这是MTK编译出现的错误解决⽅法:在⽇常的MTK⼯程代码编译中,总会遇到⼀些奇奇怪的报错信息,第⼀次碰到的话,肯定会很头疼。

下⾯列出了3个出现⼏率较⼤的⼏个异常。

1,non ELF类似于 Error:L6850E:Archive non ELF Object app_url.obj 之类的错误,⼀般是由于分布式编译异常中断引起的,可以⽤checkobj 这个指令来清除异常的obj⽂件。

再remake即可。

2,Image$$ZI$$Limit这个问题基本都是由于在⾃⼰的代码中MTK端宏⾥⾯,使⽤了C的标准输出函数printf、,malloc,free等。

3,Couldn't reserve space for cygwin's heap这种情况,基本是执⾏ sys-1.0.dll 时除了问题,可cmd定位到该⼯程⽬录,输⼊命令,rebase -b 0x76000000./tools/MSYS/bin/msys-1.0.dll 然后重新编译即可。

ERROR1 :non ELF Object在编译某模块时,在new时出现了下⾯的错误:LENOVO53_09A_GEMINI_PHOENIX310\log\mmi_app.log(2):Error: L6850E: Archive contains non ELF Objectphonebookstubstoothers.objcause:可能是分布式编译中断造成的部分⽣成⽂件有误,Object phonebookstubstoothers.obj⽂件⼤⼩为0解决:删除该⽂件重新remake下可以解决。

ERROR2 :Free clusters are NOT enough问题:问题:Free clusters are NOT enough . Check ckSysDrv.log for detail !分析分析:这可能是在项⽬中的mak⽂件中开了⼀些不必要的宏,造成nvram空间不够,看⽂件中下⾯分析:Cluster Size (Bytes) 512Free Space (Clusters) 870Folders and Applications Requirement (Clusters) 1008RESULT: FAIL!Shortage: 138 clusters (138 Sectors = 69.0 KB = 0.07 MB)1) Shrink FS First Drive Size to enlarge system drive size (Shrink at least 138 sectors).2) Enlarge FS Region Size.3) Disable some features to shrink quota requirement.4) Replace flash device with another bigger one (Custom release projects only).cluster(簇)的概念:ERROR3 :MTK cksysdrv has errors. Delete the binary file.ERROR3 :MTK cksysdrv has errors. Delete the binary file.删除log中的ckSysDrv.log ⽂件重新r下即可.ERROR3 :FLASHTOOL ERROR FROM UI解决:关闭catcher即可ERROR4 :MTK Output CustENFBImgMap.c... done在新加了联系⼈的备份功能后,在new的时候在编译时候出现了这样编译信息后⼀直不动原因是在res.txt⽂件中多了⼀空⾏。

(505记 ) 3_编译MTK包(包含模块编译

(505记 ) 3_编译MTK包(包含模块编译

第一部分:编译MTK包:----更新于2013/04/05 宝连整理前期准备:一:系统要求:Linux Ubuntu 10.04 64bitbao/t0目录下:1、.gz00~.gz06这个是压缩的分包,先解压成一个大的解压包进入,你所放的目录:在终端下运行命令:cat(一个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz00 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz01 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz02 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz03 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz04 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz05 (1个空格)ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz06 (1个空格)>> ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz这样就多了一个压缩包ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz2、然后把上面得到的解压包解压命令tar –vzxf ALPS.ICS.MP.V2.2_HEXING75_ICS_INHOUSE.tar.gz得到一个alps文件夹3、再把ALPS.ICS.MP.V2.2_HEXING75_ICS_GPL.tar.gz合并上去(即直接解压ALPS.ICS.MP.V2.2_HEXING75_ICS_GPL.tar.gz这个压缩包所得的内容自动解压到alps文件夹中)命令:tar –vzxf ALPS.ICS.MP.V2.2_HEXING75_ICS_GPL.tar.gz此时整个alps文件夹有5.4G(一):编译android:在终端进入到bao/code/alps目录下输入命令:source mbldenv.sh 回车再输入 ./makeMtk generic new(二)、编译模拟器Emulator输入命令:./makeMtk banyan_addon n dr emulator(三)、编译SDK(大概半个多小时)输入命令:./mk banyan_addon编译SDK成功后在下面目录生成两个文件:(四)编译到此结束,以下是把模拟器运行到eclipse上:1、生成的SDK目录里即:alps/out/host/linux-x86/sdk_addon里解压mtk_sdk_api_addon-15.1.zip 在本目录得到mtk_sdk_api_addon-15.1文件夹2、把mtk_sdk_api_addon-15.1文件夹拷贝到你以前安装SDK的目录即android-sdk-linux 文件夹下的add-ons文件夹里3、再进入mtk_sdk_api_addon-15.1文件夹的emulator/linux里面拷贝以下三个文件返回到android-sdk-linux文件夹再进入tools文件夹把刚拷贝的三个文件放在此文件夹内(由于tool里面也有上面的三个模拟器,直接拷贝会把原来的覆盖掉,所以为了保险起见,最好先把原来的三个模拟器备份)4、打开eclipse创建一个新的emulator这样在Target的选项就多了MTK 4.0.3这个选项,我们选择它创建好模拟器接着就运行结果如下:注:(一)Building android出自文档build/v2.3/ALPS(Android 2.3) Build System Introduction.pdf(二)building Emulator (三)building SDK 出自文档Framework/MTK SDK User Guide.pdf(五)单模块编译(命令)1、source build/envsetup.sh2、./makeMtk generic mm packages/apps/Launcher23、./makeMtk generic systemimage。

MTK编译环境及常用工具介绍

MTK编译环境及常用工具介绍

MTK编译环境及常用工具介绍MTK(MediaTek)是一家全球知名的半导体公司,主要专注于移动通信领域的研发和生产。

在MTK编译环境中,常用的工具包括MTK自家开发的编译工具链、编译器、调试工具和常用的第三方工具等。

本文将介绍MTK编译环境及常用工具的基本情况。

1. 编译工具链(Toolchain):MTK自家开发的编译工具链是MTK编译环境的核心部分,它由一系列编译器、汇编器、链接器和其他辅助工具组成。

MTK的编译工具链根据不同的目标平台和处理器架构进行定制,常见的包括arm-linux-gcc、mips-linux-gcc等。

编译工具链提供了一套标准的工具接口,方便开发者编译和构建代码。

3. 调试工具(Debugging Tools):调试工具在软件开发过程中起到了至关重要的作用。

MTK编译环境中,常见的调试工具有gdb、ddd、Valgrind等。

gdb是一个强大的调试器,支持多种调试功能,包括断点调试、内存查看、变量跟踪等。

ddd是gdb的图形化界面,提供了更加直观和友好的调试环境。

Valgrind是一款内存分析工具,可以检测程序中的内存错误和泄漏问题。

4. 版本控制工具(Version Control Tools):版本控制是软件开发中必不可少的一部分,它能够跟踪记录代码的改动并进行管理。

MTK编译环境中,常见的版本控制工具有Git、SVN等。

Git是一款分布式版本控制工具,它具有高效、灵活、安全等特点,被广泛应用于开源项目和企业级开发中。

SVN是一款集中式版本控制工具,相对简单易用,适合小规模团队和个人开发者使用。

5. 性能分析工具(Performance Analysis Tools):性能分析是优化软件的关键步骤之一,MTK编译环境中常用的性能分析工具有oprofile、perf等。

oprofile是一个基于硬件性能计数器的性能分析工具,可以实时监测程序的运行情况,并提供详细的性能报告。

MTK软件编译步骤

MTK软件编译步骤

请按以下操作说明进行:打开dos编辑窗口(开始->运行->cmd),找到工程代码所在根目录,如\opt\MTK6217 输入编译批处理命令:格式:make[custom="projectName"]"project" "action"["modules"]Example: make custom=mtk6217 gprs new给个MTK的make方法后面的modules是nucleus之类的,可以不用写,中间的除了mtk6217工程名外可以照写,mtk6217工程名可以在你的源代码的make目录下有个工程文件名,比如我的例子就叫mtk6217_gprs.mak,你将你的替换就可以了,另外,除了上面的仁兄跟你说的ADS1.2以上 perl也要 5.**,我用的是ActivePerl-5[1].6.1.631的,你查找下载一下再用ARMAR 打包成静态LIBMTK软件编译编译工具和辅助工具:ADS1.2ADS12_update_842.exeMSYS-1.0.10.exeMinGW-3.1.0-1.exeImageMagick-6.2.5-5-Q16-windows-dll.exe7z313.exe开始编译:切换到项目根目录,然后在命令行下面执行命令:make custom=proj gprs new其中,命令可以为 clean,update,remake目标文件:生成的目标文件为.bin文件,位于 MTK\\build\\proj 目录下面,build 目录为生成的一个目录。

Log文件:Log文件同.bin文件一样,也是位于 build 目录下,如果编译出错,可以在命令行中看到出错的模块,然后到build 目录下找对应的log 文件。

仿真环境:工程文件 PixtelMMI.dsw 位于目录 MTK\\plutommi\\mmi 下面,由此可进入仿真环境。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

打开dos编辑窗口(开始->运行->cmd),找到工程代码所在根目录,如\opt\MTK6217 输入编译批处理命令:格式:make[custom="projectName"]"project" "action"["modules"]Example: make custom=mtk6217 gprs new给个MTK的make方法后面的modules是nucleus之类的,可以不用写,中间的除了mtk6217工程名外可以照写,mtk6217工程名可以在你的源代码的make目录下有个工程文件名,比如我的例子就叫mtk6217_gprs.mak,你将你的替换就可以了,另外,除了上面的仁兄跟你说的ADS1.2以上 perl也要 5.**,我用的是ActivePerl-5[1].6.1.631的,你查找下载一下再用ARMAR 打包成静态LIBMTK软件编译编译工具和辅助工具:ADS1.2ADS12_update_842.exeMSYS-1.0.10.exeMinGW-3.1.0-1.exeImageMagick-6.2.5-5-Q16-windows-dll.exe7z313.exe开始编译:切换到项目根目录,然后在命令行下面执行命令:make custom=proj gprs new其中,命令可以为 clean,update,remake目标文件:生成的目标文件为.bin文件,位于 MTK\\build\\proj 目录下面,build 目录为生成的一个目录。

Log文件:Log文件同.bin文件一样,也是位于 build 目录下,如果编译出错,可以在命令行中看到出错的模块,然后到build 目录下找对应的log 文件。

仿真环境:工程文件 PixtelMMI.dsw 位于目录 MTK\\plutommi\\mmi 下面,由此可进入仿真环境。

烧写程序:工具 Flash_tool.exe 可烧写程序。

该工具的主要设置是 COM口和目标文件位置。

Download argent 和 scatter file 用自带的就可以了,选中这两项后,会出现ROM的选择项,点击后可选择.bin文件。

如下图:设置好上面的参数后,连接上手机,将手机断电,然后按开机键就可以烧写程序了。

Trace 工具在手机上往往要做一些trace,这就要用到trace工具---Catcher.exe。

手机上打 trace 接口为kal_prompt_trace,如同agere平台的GSMprinf.使用 Catcher.exe,要先要设置 DataBase,这个文件是在编译的时候生成的,是个没有扩展名的二进制文件,该文件位于 \\MTK\\tst\\database_classb,例如, BPLGU..。

在 Catcher.exe 中,设置 DataBase 的方式是configà set database path其次, 要设置模式为logging,这样才能进行下面的设置。

该设置位于controlà modeà logging第三,要设置好COM口。

第四,打开连接开关,表示 Catcher.exe处于待命状态。

第五,设置filter。

这个可以过滤一些自己不需要的log。

有时半天不出现log, 这时候重新选择一下filter一般就会解决问题。

Filter设置路径为controlà set filterCatcher.exe 使用的连接线给烧写程序用的线是同一条。

保存log:在log区域选中想要保存的log (可用shift+鼠标),鼠标右键选save as…有时为了方便测试,会设置trace默认关闭,需要的时候可以打开。

该设置在工程模式下。

设备à set UARTàTST Config, 设置合适的UART 口。

比如,UART1是可以trace的。

编译出错:有时编译会出现莫名其妙的错误,比如一刚刚可以编译通过,现在却不行,.以上为项目开发的基本环境和基本过程接下来的内容,则是具体的开发细节―――――――――――――――――――――――――――――添加文件:开发过程中,少不了加减文件, 删除文件实际上是添加文件的相反过程,因此略过。

MTK设置了很多lst 和 pth 文件供用户添加文件,这些都在make文件夹下。

用户可以自己添加模块,也可利用原有的lst 和 pth 文件添加。

以下以添加在 MTK\\make\\plutommi 为例。

添加头文件路径:plutommi.inc添加本模块路径:plutommi.pth添加源文件路径:plutommi.lis添加完毕,这些文件就可参与编译了。

添加开关:开关真是个好东西。

依靠它,可以将没有价值的功能瞬间屏蔽,又可以将我们需要但又搁置的功能瞬间启用。

能者上,不能者下,多么类似于社会法则。

添加开关在make文件夹下面的 .mak文件里面。

注意事项:有人喜欢模仿MTK原做法,在 .mak文件里面使用一个开关管住另外一个开关。

那么两个开关不要同名,否则开关起不了关闭的作用。

添加string资源:1. GlobalDefs.h 中增加ID2. population.c 中将ID和 string关联3.plutommi\\Customer\\CustResource\\PLUTO_MMI\\ref_list.txt 中增加ID 和各种语言的文本有了以上3个步骤,即可使用该文本资源了。

编译后,在 plutommi\\Customer\\CustResource下面会生成新的CustStrMap.c 和CustStrRes.c这两个文件中就包含了新增的string资源添加图片:1. GlobalDefs.h 中增加ID2. population.c 中将ID和 string关联3. 增加图片到解压后的包里,增加完毕,应打包。

plutommi\\Customer\\Images\\PLUTO176X220里面的文件夹是生成的,可以在cc上看到为private。

4. 添加进去后,要打包,如果仅添加在文件夹里面会被清除。

如果没有找到图片文件,手机显示的时候是一个红色的*添加图片时,注意路径用4杠在NVRam中增加成员:需要增加ID,指出每块大小,以及总的块数和缺省值。

每块大小最好为偶数。

修改下面的文件:Nvram_user_defs.h: ID, 大小,个数NVRAMEnum.hNvram_user_config.ccustom_nvram_editor_data_item.h是在Dos环境下编译,可以做成一个批处理文件,更方便。

MTK编译分资源的编译和代码的编译:1). 需要编译资源的情况:在如下的修改情况下,需要重编译资源:a. 修改了..plutommi\\Customer\\CustResource\\PLUTO_MMI\\目录下的文件如字库文件(FontRes.c、L_**.h文件)、MMI配置文件(MMI_featuresPLUTO.h)、字符串资源文件(Ref_list.txt)等;b. 修改了..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一下资源,就可以看到效果了。

有如下的编译命令:make custom=xxx gprs newmake custom=xxx gprs updatemake custom=xxx gprs remakemake custom=xxx gprs clean这些编译命令可以做成批处理文件build.bat,我们输入相应的选项就可。

编译成功后,在build目录下生成所有的.obj,编译信息log文件、下载.bin文件等;编译失败时,到build目录下查看相应的log文件,可看到出错信息。

几个关键字解释如下:1). xxx,Project名,对应make目录下的xxx_GPRS.mak文件;2) 最后一个关键字:a. new:不管资源、代码是否有改变,全部重编;b. update:扫描资源、代码的改变,有改变的重编,无改变的不编;c. remake:不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编;d. clean:清除build目录下的所有内容,保留目录结构。

相关文档
最新文档