高通平台编译方法.doc
MTK的编译过程方法

1.编写目的本文编写的目的主要是从整体上理解MTK的编译过程,以便较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。
2.简介MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的prel脚本或c程序,将资源包生成c源程序,并与相应模块的c程序.o 码,最终生成在手机上使用的.bin文件和在模拟器上使用的mmiresource.dll资源文件。
3.编译前的准备工作A.编译工具和辅助工具ADS1.2ADS1.2_update_848.exelMSYSlMinGWlImageMagick7zB.编译环境搭建l按默认路径安装ADS1.2,并安装848补丁包按默认路径安装Perl按默认路径安装7_zip安装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目录下。
C.编译环境检查检查第三方软件安装情况如果确认全部安装,可跳过此步。
将custom3rdParty.pl文件拷贝到本机,修改4$sevenZipPath = "C:\\Progra1~1\\7-Zip";5$MinGWPath = "C:\\MinGW";6$MSYSPath = "C:\\MSYS";然后退回到MAUI文件夹,运行在Tools\chk_env.exe检查windows环境变量检查MTK中Makefile变量是否正确打开..\make\option.make,检查关于ADS编译器的路径设置ifeq ($(strip $(COMPILER)),ADS)DIR_ARM = c:\adsv1_2DIR_ARM := $(strip $(DIR_ARM))DIR_TOOL = $(DIR_ARM)\binDIR_ARMLIB = $(DIR_ARM)\libDIR_ARMINC = $(DIR_ARM)\includeEndifD.结束现在可以执行MAKE了,例如Make proj_name gprs new_modisMake PROJ_NAME gprs new4.编译命令与文件MTK编译分资源的编译和代码的编译。
高通校准平台操作流程

高通校准平台操作流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!高通校准平台操作流程一、准备工作阶段。
在开始使用高通校准平台之前,需要做好充分的准备。
hexagon 编译 -回复

hexagon 编译-回复什么是Hexagon编译?Hexagon编译是为高通公司设计的专用数字信号处理器(DSP)芯片Hexagon DSP(数字信号处理器)编译器系统。
它是一种基于C语言的编译器,面向Hexagon DSP和其他类型的数字信号处理器。
Hexagon 编译器提供了一种非常高效的方法来编写和优化DSP应用程序,帮助开发人员提高处理速度和功耗效率。
Hexagon DSP是一种广泛应用于移动设备和IoT设备的DSP芯片。
与CPU不同,DSP芯片专门用于数字信号处理,例如音频、视频、传感器数据处理等。
Hexagon DSP是在高通公司的Snapdragon处理器中广泛使用的一种数字信号处理器。
Hexagon编译器的优势Hexagon编译器在Hexagon DSP和其他类型的DSP上的优势在于:1. 高效的代码生成。
Hexagon编译器可以生成高效的代码,以最大化DSP 的性能和功耗效率。
它使用独特的编译优化技术,例如自动并行化和向量化,将代码转换成高度优化的机器代码,以最大化DSP吞吐量。
2. 简单易用的编程模型。
Hexagon编译器支持C和C++语言,这使得它非常适合用于DSP编程。
与其他DSP编程模型相比,使用C和C++语言编写的代码更容易理解和维护。
Hexagon编译器为DSP编程提供了一种简单易用的方法。
3. 高效的内存管理。
Hexagon编译器提供了一种优化内存使用的方法,以最大化内存效率,并减少功耗。
它可以生成高度优化的与内存相关的代码,从而使DSP能够高效地使用内存。
4. 独特的调试和分析工具。
Hexagon编译器提供了一套独特的调试和分析工具,可帮助开发人员进行DSP性能分析和调试。
这些工具包括DSP 仿真器、代码分析器和性能分析器,并与其他DSP开发工具无缝集成。
使用Hexagon编译器的应用程序Hexagon编译器广泛应用于各种应用程序,包括音频和视频处理、传感器数据分析和处理、图像处理等。
高通MSM8Kbootloader之四:ramdump

⾼通MSM8Kbootloader之四:ramdump前⾯说过⾼通平台,系统crash发⽣时,抓取crash ramdump⾮常重要,否则很难定位crash原因。
平台默认抓取ramdump的⽅法都有很强的局限性,如下:1、PC端⼯具QPST提供的 Memory Debug Application⼯具。
局限性:完全信赖PC2、sbl1将crash现场dump到外置sdcard。
boot_sd_ramdump.c局限性:很多⼿机根本没有配置外置sdcard。
3、今天再看⾼通代码,还有种ram dump ⽅法,直接dump到raw partition :boot_raw_partition_ramdump .cboot_procedure_func_type sbl1_pre_dload_procs[] ={............/*-----------------------------------------------------------------------* Ram dump to eMMC raw partition, this function will reset device* after successful dump collection if cookie is set*----------------------------------------------------------------------*/(boot_procedure_func_type) boot_ram_dump_to_raw_parition,#ifdef FEATURE_BOOT_RAMDUMPS_TO_SD_CARD/*----------------------------------------------------------------------* Take the Ramdumps to SD card if cookie file is* present in SD card*---------------------------------------------------------------------*/boot_ram_dumps_to_sd_card,#endif /*FEATURE_BOOT_RAMDUMPS_TO_SD_CARD*/NULL};对于没有外置sdcard的⼿机,我考虑按如下⽅法改进ramdump机制,⼤概思路如下:1、emmc分区添加⼀个400M左右的新分区,格式化成fat⽂件系统。
内核编译的步骤

内核编译的步骤以内核编译的步骤为标题,写一篇文章。
一、概述内核编译是将操作系统内核的源代码转换为可以在特定硬件平台上运行的机器代码的过程。
通过编译内核,可以定制操作系统,优化性能,添加新的功能等。
二、准备工作1. 获取内核源代码:可以从官方网站或版本控制系统中获取内核源代码。
2. 安装编译工具链:需要安装交叉编译工具链,以便在主机上编译生成目标平台上的可执行文件。
3. 配置编译环境:设置编译选项,选择适合的配置文件,配置内核参数。
三、配置内核1. 进入内核源代码目录:在命令行中切换到内核源代码目录。
2. 启动配置界面:运行命令“make menuconfig”或“make config”启动配置界面。
3. 配置选项:在配置界面中,可以选择内核所支持的功能和驱动程序,根据需求进行配置。
例如,选择硬件平台、文件系统、网络协议等。
4. 保存配置:保存配置并退出配置界面。
四、编译内核1. 清理编译环境:运行命令“make clean”清理编译环境,删除之前的编译结果。
2. 开始编译:运行命令“make”开始编译内核。
编译过程可能需要一段时间,取决于硬件性能和代码规模。
3. 生成内核镜像:编译完成后,将生成内核镜像文件,通常为“vmlinuz”或“bzImage”。
4. 安装内核模块:运行命令“make modules_install”安装内核模块到指定目录。
五、安装内核1. 备份原始内核:在安装新内核之前,建议备份原始内核以防止意外情况发生。
2. 安装内核镜像:将生成的内核镜像文件复制到引导目录,通常为“/boot”。
3. 配置引导程序:根据使用的引导程序(如GRUB或LILO),更新引导配置文件,添加新内核的启动项。
4. 重启系统:重启计算机,并选择新内核启动。
六、验证内核1. 登录系统:使用新内核启动系统后,使用合法的用户凭证登录系统。
2. 检查内核版本:运行命令“uname -r”可查看当前正在运行的内核版本。
zynqmpsoc 通用编译方法

zynqmpsoc 通用编译方法全文共四篇示例,供读者参考第一篇示例:Zynq MPSoC是赛灵思公司推出的一款集成Arm处理器和可编程逻辑的器件,广泛应用于各种嵌入式系统和高性能计算领域。
编译是软件开发过程中不可或缺的一环,而通用的编译方法可以帮助开发者更高效地完成项目,提高开发效率和质量。
本文将介绍关于Zynq MPSoC通用的编译方法,希望能为开发者提供一些帮助。
一、环境搭建在编译之前,首先需要搭建好开发环境。
Zynq MPSoC通用的编译方法通常需要以下组件:1. 交叉编译工具链:Zynq MPSoC使用Arm架构的处理器,因此需要一个适用于Arm架构的交叉编译工具链。
常用的工具链有gcc、arm-linux-gnueabihf等,可以根据具体情况选择适合的工具链。
2. 开发板支持库:针对Zynq MPSoC的开发板,通常会提供相应的支持库,包括驱动程序、库函数等。
需要安装这些支持库,以便在编译时调用。
3. 开发环境:通常使用Linux系统进行Zynq MPSoC的开发,因此需要在Linux系统中安装相应的开发环境,如make、cmake等。
二、编译步骤在搭建好开发环境之后,就可以开始进行编译了。
通常Zynq MPSoC的通用编译方法包括以下步骤:1. 编写源代码:首先需要编写源代码,可以是C/C++、Verilog/VHDL等语言。
源代码需要符合Zynq MPSoC的架构和规范,以便在编译时正确生成目标文件。
2. 配置编译选项:在编译过程中,通常需要配置一些编译选项,如编译器选项、链接选项等。
可以通过Makefile、cmake等工具来配置编译选项,以确保生成的目标文件符合需求。
3. 使用交叉编译工具链进行编译:在配置好编译选项之后,可以使用交叉编译工具链对源代码进行编译。
交叉编译工具链会生成目标文件,包括可执行文件、静态库、动态库等。
4. 运行程序:可以将生成的目标文件烧录到Zynq MPSoC开发板上,并运行程序进行测试。
【转】Android编译系统详解(三)——编译流程详解

【转】Android编译系统详解(三)——编译流程详解原⽂⽹址:本⽂原创作者: 欢迎转载,请注明出处和1.概述编译Android的第三步是使⽤mka命令进⾏编译,当然我们也可以使⽤make –j4,但是推荐使⽤mka命令。
因为mka将⾃动计算-j选项的数字,让我们不⽤纠结这个数字到底是多少(这个数字其实就是所有cpu的核⼼数)。
在编译时我们可以带上我们需要编译的⽬标,假设你想⽣成recovery,那么使⽤mka recoveryimage,如果想⽣成ota包,那么需要使⽤mka otapackage,后续会介绍所有可以使⽤的⽬标。
另外注意有⼀些⽬标只是起到修饰的作⽤,也就是说需要和其它⽬标⼀起使⽤,共有4个⽤于修饰的伪⽬标:1) showcommands 显⽰编译过程中使⽤的命令2) incrementaljavac⽤于增量编译java代码3) checkbuild⽤于检验那些需要检验的模块4) all如果使⽤all修饰编译⽬标,会编译所有模块研究Android编译系统时最头疼的可能是变量,成百个变量我们⽆法记住其含义,也不知道这些变量会是什么值,为此我专门做了⼀个编译变量的参考⽹站,你可以在该⽹站查找变量,它能告诉你变量的含义,也会给出你该变量的⽰例值,另外也详细解释了编译系统⾥每个Makefile的作⽤,这样你在看编译系统的代码时不⾄于⼀头雾⽔。
编译的核⼼⽂件是和,main.mk主要作⽤是检查编译环境是否符合要求,确定产品配置,决定产品需要使⽤的模块,并定义了许多⽬标供开发者使⽤,⽐如droid,sdk等⽬标,但是⽣成这些⽬标的规则主要在Makefile⾥定义,⽽内核的编译规则放在build/core/task/kernel.mk我们将先整体介绍main.mk的执⾏流程,然后再针对在Linux上编译默认⽬标时使⽤的关键代码进⾏分析。
Makefile主要定义了各个⽬标的⽣成规则,因此不再详细介绍它的执⾏流程,若有兴趣看每个⽬标的⽣成规则,可查看2. main.mk执⾏流程2.1 检验编译环境并建⽴产品配置1) 设置Shell变量为bash,不能使⽤其它shell2) 关闭make的suffix规则,rcs/sccs规则,并设置⼀个规则: 当某个规则失败了,就删除所有⽬标3) 检验make的版本,cygwin可使⽤任意版本make,但是linux或者mac只能使⽤3.81版本或者3.82版本4) 设置PWD,TOP,TOPDIR,BUILD_SYSTEM等变量,定义了默认⽬标变量,但是暂时并未定义默认⽬标的⽣成规则5) 包含,该makefile定义了两个⽬标help和out, help⽤于显⽰帮助,out⽤于检验编译系统是否正确6) 包含,config.mk作了很多配置,包括产品配置,包含该makefile后,会建⽴输出⽬录系列的变量,还会建⽴PRODUCT系列变量,后续介绍产品配置时,对此会有更多详细介绍7) 包含,该makefile会包含所有⼯程的CleanSpec.mk,写了CleanSpec.mk的⼯程会定义每次编译前的特殊清理步骤,cleanbuild.mk会执⾏这些清除步骤8) 检验编译环境,先检测上次编译结果,如果上次检验的版本和此次检验的版本⼀致,则不再检测,然后进⾏检测并将此次编译结果写⼊2.2 包含其它makefile及编译⽬标检测1) 如果⽬标⾥含有incrementaljavac,那么编译⽬标时将⽤incremental javac进⾏增量编译2) 设置EMMA_INSTRUMENT变量的值,emma是⽤于测试代码覆盖率的库3) 包含,该makefile定义了许多辅助函数4) 包含,该makefile定义了⾼通板⼦的⼀些辅助函数及宏5) 包含,该makefile定义了优化dex代码的⼀些宏6) 检测编译⽬标⾥是否有user,userdebug,eng,如果有则告诉⽤户放置在buildspec.mk或者使⽤lunch设置,检测TARGET_BUILD_VARIANT变量,看是否有效7) 包含, PDK主要是能提⾼现有设备升级能⼒,帮助设备制造商能更快的适配新版本的android2.3 根据TARGET_BUILD_VARIANT建⽴配置1) 如果编译⽬标⾥有sdk,win_sdk或者sdk_addon,那么设置is_sdk_build为true2) 如果定义了HAVE_SELINUX,那么编译时为build prop添加属性ro.build.selinux=13) 如果TARGET_BUILD_VARIANT是user或者userdebug,那么tags_to_install += debug 如果⽤户未定义DISABLE_DEXPREOPT为true,并且是user模式,那么将设置WITH_DEXPREOPT := true,该选项将开启apk的预优化,即将apk分成odex代码⽂件和apk资源⽂件4) 判断enable_target_debugging变量,默认是true,当build_variant是user时,则它是false。
高通平台发软件发布版本规范

(1)版本配置信息 (2)版本发布原因,如平台问题修复,客户定制需求更新等 (3)版本其他需求 版本编译前确认如下信息: (1)确认版本其他需求是否已经上传代码服务器。 (2)确认ARM9是否需要编译。 通过查看上一版本到最新版本是否有更新,以确定是否需要编译ARM9。不确定的和软件平台负责人确认。 操作如下: git diff [上一发布版本版本号] 二、下载或更新版本 1. 下载新版本 参考《Git版本路径和说明》下载新版本。 2. 更新版本 2.1 App 版本更新 1. 删除out目录 2. 更新版本,执行如下操作: repo forall -c git add . repo forall -c git reset --hard repo forall -c git pull --rebase 2.2 Modem 版本更新 1. 更新版本,执行如下操作: rm -rf AMSS git checkout . git pull --rebase 三、配置编译文件 配置编译文件可以分为两种情况:第一次软件发布和软件升级。 1. 第一次软件发布 1.1 App 软件第一次发布 请软件平台负责人提供: (1)build/buildspec.mk.default (2)kernel/arch/arm/configs/msm7627-perf_defconfig 1.2 Modem 软件第一次发布 请软件平台负责人提供: (1)AMSS/products/76XX/build/ms/targtfncknlym.h 2. 软件版本升级 2.1 App 软件版本升级 和上次发布版本对比 (1)build/buildspec.mk.default
(2)kernel/arch/arm/configs/msm7627-perf_defconfig 新版和上次发布版本比较有如下三种情况: 1.新增宏: 请宏添加者确认。 2.删除宏: 请宏删除者确认。 3.宏配置不同: 如未特殊说明,以上次发布版本为准。特殊说明的,以说明为准。 如果《高通平台发布版本信息确认表》中含有的信息,以其为准。不确定的和软件平台负责人确认。 其他特殊修改的文件 特殊修改文件一般为临时验证未上传服务器的代码,即除上述两个文件,编译版本时修改的文件均是特殊修改的文件。 对比发布说明,和软件平台负责人确认是否需要做特殊修改。 2.2 Modem 软件版本升级 和上次发布版本对比 (1)AMSS/products/76XX/build/ms/targtfncknlym.h 新版和上次发布版本比较有如下三种情况: 1.新增宏: 请宏添加者确认。 2.删除宏: 请宏删除者确认。 3.宏配置不同: 如未特殊说明,以上次发布版本为准。特殊说明的,以说明为准。 4.需要根据具体版本手动修改版本号。 如果《高通平台发布版本信息确认表》中含有的信息,以其为准。不确定的和软件平台负责人确认。 其他特殊修改的文件 特殊修改文件一般为临时验证未上传服务器的代码,即除上述一个文件,编译版本时修改的文件均是特殊修改的文件。 对比发布说明,和软件平台负责人确认是否需要做特殊修改。 四、编译代码 1. 编译App 版本 1. 编译App 版本执行如下操作: . build/envsetup.sh setenv(查看配置信息是否正确) make -j4 或make -j16 2. 编译Modem 版本 1. 编译Modem 版本执行如下操作:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qualcomm平台编译之我见jinjing.zhao@ 一、平台简介高通平台的应用层的开发是在brew上进行的,brew提供了很多接口供应用层调用相关的api。
高通平台的思想是用c语言实现面向对象的功能,具体通过结构体以及虚表来实现。
在oem层中实现具体的api函数,用来填虚表。
通过oem层以及service代码的修改,来实现上层应用具体需要的功能。
为了开发界面的方便,高通又在brew的基础上推出了buit,包括widget(控件),form (窗体),decorator(修饰),container(容器)以及model(模型)。
bar文件:资源文件,用高通自带的工具生成,程序运行的时候从此文件中读取字符串以及图片。
可以将此文件放到文件系统中,也可以将此文件编译成.c文件,然后再编译成.o 文件,放到代码段里面去。
Mif文件:module imformation file,存放模块的相关信息。
可以将此文件放到文件系统中,也可以将此文件编译成.c文件,然后再编译成.o文件,放到代码段里面去。
二、编译解析平台的编译命令放在了\build\ms目录下。
可以有两种编译方法:一种是使用cmd命令,还有是在cygwin下使用bash脚本。
但道理都是一样的,就是执行一个makefile文件dmss6250.mak。
顺序如下:1)运行cmd,cd到\build\ms目录下,键入ads12;ads12是个批处理命令,功能是为ads1.2,perl,以及gnu设置编译环境变量。
2)执行****.cmd命令。
1、dmss6250.mak整个编译过程就是在执行这个makefile。
在这个makefile的开头处,我们可以看到include dmss_flags.mininclude dmss_$(ASIC)_flags.mininclude incpaths.mininclude armtools.mininclude dmss_objects.min包含的这些文件初始化了一些编译选项,编译路径,编译工具,以及包含要编译模块的min文件。
在添加模块的时候需要修改:incpaths.min:添加<模块的路径变量>= $(SRCROOT)/apps/<module name>在ALL_PATHS中添加<模块的路径变量>。
ALL_PATHS是编译时的查找路径,这是高通的默认做法,在编译的时候,每编译一个文件都会到ALL_PATHS的所有目录下去寻找,因此严重降低了编译的速度。
为了提高编译速度,可以考虑书写一个脚本,在编译的时候将所有的头文件考到一个文件夹下面,指定arm编译的时候到这个文件夹下面搜寻头文件。
dmss_objects.min:添加include <模块的路径变量>/<模块的min文件>每个模块都至少有一个min文件,如alarm:#-------------------------------------------------------------------------------# Alarm#-------------------------------------------------------------------------------ALARM_SOURCES=alarm.c \Alarm_EditForm.c \Alarm_EditPeriodForm.c \Alarm_EditWeeklyForm.c \Alarm_ListForm.c \Alarm_ViewForm.c \Alarm_SetTimeForm.c\Alarm_StatusForm.cALARM_OBJS := $(addprefix $(TARGETDIR)/, $(ALARM_SOURCES:%.c=%.o))$(ALARM_OBJS): APPFLAGS = -DBREW_STA TIC_APP -DAEE_STATICALARM_DEPS := $(addprefix $(TARGETDIR)/, $(ALARM_SOURCES:%.c=%.dep)) $(ALARM_OBJS): APPFLAGS = -DBREW_STA TIC_APP -DAEE_STATICvpath %.c $(ALARM)dmss6250.mak:如Alarm在OBJECTS2中添加ALARM_OBJS。
在dmss6250.mak 文件的最后一行我们可以看到include dmss_rules.min,在这个文件中出现了makefile的目标,依赖和命令。
2、dmss_rules.min目标:all : dmss(在dmss6250.mak中)dmss : setup prereqs firmware vrfiles deps libs copybar exe hex由此可知,此makefile依次执行setup prereqs firmware vrfiles deps libs copybar exe hex,这些东西在编译过程中都可以看到。
主要说明以下几点:deps:此目标用于生成所有的依赖规则,最终都放在****.dep中,然后通过-include $(TARGETDIR)/$(TARGETDIR).dep使用依赖规则。
exe : $(TARGET).$(EXETYPE) $(LINK_TYPE)此目标实现了编译和连接,直到生成elf文件。
Hex:此目标将elf转化成可供QPST(高通提供的下载工具)下载的hex文件。
3、image文件的生成整个工程通过编译,连接以后最终生成映像文件。
整个映像文件的布局通过scl文件完成,关于如何生成可以查看arm相关书籍。
高通提供了m6250_ram.scl ,M6250_rom.scl,具体使用哪个根据编译开关选定,我们可以根据需求进行修改。
在这里说这个,主要使考虑代码段越界的问题,当加了一个比较大的模块时候,生成的代码段就会加大,所以我们要调整代码段的大小。
如何调整?因为我们编译时候的编译选项生成了map文件,这里面可以看到整个image 文件的大小以及其他信息。
具体调整的变量在flash-nand-msm.h中#define FLASH_NAND_BLK_START 0x800nand flash每块分为32个页,每页512个字节,0x800也就是32m空间大小。
三、考虑平台多项目问题高通的6250平台下有很多编译命令,如DVMSX.cmd,DVMSZ.cmd等,不同的编译命令在编译过程中会选择不同的编译开关文件。
如DVMSZ.cmd选则文件custdvmsz.h,其中又包含了targdro.h。
还有DVMSZ.cmd中也包含也很多编译选项。
@echo offdel /f /a buildDVMSZ.log.oldif exist buildDVMSZ.log move buildDVMSZ.log buildDVMSZ.log.old > nulmake -r -f dmss6250.mak USES_ZRF6300=yes USES_BREW_3.1=yes USES_MP4=yes USES_WM=yes USES_IBT=yes USES_GLES_CL=yes USES_QVP=yes USES_GWZRF6250P3=yes USES_AUDFMT_AMR=yes USES_QVPCODEC=yes USES_MMC=yes USES_RAPTOR_UMTS_DDA=yes USES_GRP=yes USES_EGL=yes USES_STATIC_RAPTOR=yes USES_TOUCAN2_QVGA=yes USES_MSUITE=yes USES_ISYSCLOCK=yes USES_AUTH=yes USES_H264=yes USES_SPLIT_CODE_DA TA=yes USES_IDIAG=yes USES_SNDCTL=yes USES_AUDIOEQ=yes USES_IMODE=yes USES_RAPTOR_UMTS_VPA=yes USES_EFS2=yes USES_STRIP_NO_ODM=yes USES_PBMTASK=yes USES_CMX=yes USES_GSTK=yes USES_BT=yes USES_MGP=yes USES_BOOT_LOADER=yes ASIC=M6250 BUILD=DVMSZ VERSION=.... 2>&1 | ..\..\tools\build\qtee buildDVMSZ.log根据编译开关选择不同的代码以及文件进行编译。
具体我们可以根据以后的实际情况通过拉分支的方式解决平台多项目问题,北京那边是这样做的。
此方面由于没有相关经验,需要在以后工作中加以实践。
四、其他相关知识下载工具:QPST:高通提供,下载hex文件,在pc端装好驱动以后,用数据线将手机与pc usb相连,通过串口下载。
在手机不能开机的情况下,找不到串口,所以不能下载。
Trace32:下载elf文件,速度比较慢。
调试工具:QXDM:高通提供,在源码中添加调试信息,然后编译,在QXDM显示窗口中查看调试信息。
Trace32:jtag调试,可以跟踪源码,发现为什么死机等等,但是价格比较贵。
添加模块时除了要修改makefile相关的几个文件以外:还需要修改以下几个地方:如通话记录1、coreapp.min# Owner: recentcallsvpath %.mif $(BREW_STA TIC_MIFS)vpath %.bar $(RECENTCALLS)/resources/en/256colorvpath %.bar $(RECENTCALLS)/resources/ja/256colorvpath %.bar $(RECENTCALLS)/resources/jw/256colorCONSTFILE_FILES+=\recentcalls.mif|fs:/mif/recentcalls.mif \recentcallsen.bar|fs:/mod/recentcalls/recentcalls.bar \recentcallsja.bar|fs:/mod/recentcalls/ja/recentcalls.bar \recentcallsjw.bar|fs:/mod/recentcalls/jw/recentcalls.bar2、oemmodtableext.h#if defined(FEATURE_APP_RECENTCALLS)//程序的入口函数extern int RecentCalls_Load(IShell *ps, void * pHelpers, IModule ** pMod); #endif#if defined (FEATURE_APP_RECENTCALLS){AEEFS_MIF_DIR"recentcalls.mif", RecentCalls_Load},#endif3、oemconstfiles.h#if defined (FEATURE_APP_RECENTCALLS)&gRECENTCALLS_MIF,#endif4、oemappfuncs.c#ifdef FEATURE_APP_RECENTCALLS#include "recentcalls.bid"#endifbid文件,每个applet的都又一个class id,用来启动,关闭等操作。