您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > SpreadtrumAndroid8810_文件编译流程(V100)
人力资源部-培训发展组.1TDDivSpreadtrumAndroid------文件编译流程v1.0.0上海·北京·深圳·圣迭戈·韩国·印度Innovationchangesthefuture课程名称:SpreadtrumAndroid文件编译流程课程类别:通用课程课程目标:1,了解8810G的源代码结构。2,了解8810G的U-boot,Kernel,Android的编译过程。Innovationchangesthefuture主要内容./mk./build.shmakeDownloadFilesUboot,kernelandAndroidInnovationchangesthefuture,FDL1:初始化SDRAM,与PC通信下载FDL2到SDRAM,并运行FDL2。2,FDL2:初始化NAND控制器,与PC通信下载其他Image到NANDflash。[客户可自行编译,一般情况下无需改变]3,u-boot-spl-16k.bin:第一级bootloader,在IRAM执行,初始化CPU,SDRAM等,引导UBOOT分区到SDRAM中。[客户可自行编译,一般情况下无需改变]4,u-boot.bin:真正的bootloader,初始化部分设备,负责将虚拟机,ThreadX分区,Linux分区从NAND注入SDRAM。[客户可自行编译,关注LCD,Key以及其它的一些改变]5,vmjaluna.img:虚拟机执行代码。管理和调度两个OS。6,Modem.bin:ThreadX执行代码,Modem通信协议的实现。7,DSP_DM_G2.bin:Modem的DSP代码实现。8,nvitem.bin:FixedNV数据,射频,网络等信息。[客户可使用Nveditor工具生成bin,主要关注RF数据的变化]------要注意不同射频器件对应的不同的DSP和Nvitem文件。9,boot.img:Cmdline+LinuxKernel+Ramdisk。[客户可自行编译,关注外设驱动的变化]10,System.img:Android代码。[客户可自行编译,关注装载驱动模块,HAL,frameworks,Application的变化]11,Userdata.img:Android数据。[客户可自行编译,关注初始数据]Innovationchangesthefuture代码架构—IDH压缩包Base:主文件包,包括u-boot[FDL2,SPL,uboot],kernel[boot.img]和Android[system.img,userdata.img]Csr:含有csr的BT,GPS,WIFI的code,解压缩后复制到3rdparty对应目录。Inno:含有inno的CMMB的code,解压缩后复制到3rdparty对应目录。Innovationchangesthefuture代码架构—base包结构apuser@xqianubt:~/source/8810$catmk#!/usr/bin/perl–wrequirecustomize/perl/main.pl;Innovationchangesthefuture代码架构—csr和inno包结构Innovationchangesthefuture=arguement:Passargumentstomake.-h,-help:Printthismessageandexit.-lp,-listp:Listallavailableprojects.-ck,-chk-env:checkbuildenvironment.Projects:oneofavailableprojects.Actions:n,new:Cleanandcompile.c,clean:Cleantheobjects.u,update:Re-compiletarget.pac,packet:packetdedicatedfolderpb,prebuild:Gensomefilesforcustomization.ig,idhgen:Genidhcodereleasepackage(usedinternally)igb,idhgenb:Genidhlibreleasepackage(usedinternally)ua,update-api:Theupdate-apiprocess.mc,menuconfig:makemenuconfigModules:ub,uboot:Buildforuboot.k,kernel,bootimage:Buildforkernel.adr,android:Buildforandroid.adrmodulename:Buildforandroidmoduleuserdata:Buildforuserdataimg.ramdisk:Buildforramdiskrecovery:Buildforrecoveryimage.userdata:packetuserdatafoldersystem:packetsystemfolderExample:(1)Cleanandcompile.:./mksp8810gan(2)Re-compiletarget:./mksp8810gau(3)Cleantheobjects:./mksp8810gac(4)Buildkenrel:./mksp8810gauk(5)Builduboot:./mksp8810gauub(6)Buildkenrelanduboot:./mksp8800gaukub(7)Checkbuildingenvironmet:./mk-ck(8)Listallavailableprojects:./mk-lp(9)Updateapi:./mksp8810gaua(10)PreBuild:./mksp8810gapb(11)Buildramdiskimg:./mksp8810gauramdisk(12)Buildrecoveryimg:./mksp8810gaurecovery(13)Packetsystemimg:./mksp8810gapacsystem(14)Packetuserdataimg:./mksp8810gapacuserdata(15)Makemenuconfig:./mksp8810gamc(16)generateidhlib(onlyforinternaluse):./mksp8810gaigb(17)Buildunderusrmode(defaultengmode):./mk-o=usrsp8810gan(18)Buildaunder1simmode:./mk-o=1simsp8810gan(19)Buildunderusr&1simmode:./mk-o=usr:1simsp8810gan(20)Aftercompilenotcleanlinkfiles(defaultclean):./mk-o=nscsp8810gan(21)Buildandroidmoduleunderpathxxx/xxx:./mksp8810gauadrxxx/xxx(22)Buildkernelkounderpath3rdparty/xxx:./mksp8810gauko3rdparty/xxx(23)Cleankoobjs:./mksp8810gacko3rdparty/xxxInnovationchangesthefuture用来检查客户编译环境。2.cleanall.pl:用来恢复至客户编译前环境。3.filebk.pl:用来在客户化代码生成过程中备份必要文件。4.fileR.pl:用来在cleanall时恢复备份文件。5.linksp.pl:用来在3rdparty文件夹下相应模块和Customize文件夹下相应模块建立链接。后续在3rdparty完成历史使命后,此文件也就失去作用。6.listP.pl:用来列出所有在customize/make文件夹下客户工程。7.main.pl:用来对客户输入编译命令行解析。8.mk:此文件同时也会存在与客户工程根目录下,是所有编译动作的最初调用脚本。9.prebuild.pl:此文件会根据customize/make中客户化配置文件在kernel/frameworks等目录下产生客户化配置代码,同时也会自动修改或生成相对应MAKEFILE。10.route.pl:用来对route.mk进行解析。与route.mk同目录的文件会按照解析出的文件路径链接至目标文件夹。11.record.pl:记录CLEAN动作时需要删除的文件夹和链接。12.kcfg.pl:此文件用来控制kernel客户化配置文件生成。13.appcfg.pl:此文件用来控制app客户化配置文件生成。14.ckcollision.pl:检查文件是否冲突,如果有生成冲突文件列表(冲突场景:不同路径下同一文件链接至同一目标文件)15.sprd.pm:各脚本通用函数列表。Innovationchangesthefuture流程1Customize/perl/mail.pl•1,parsecustomerinput取得输入参数项目$project=lc($ARGV[0]);[即sp8810ga],和$action=lc($ARGV[0]);[即n],@input_module=@ARGV;•2,parsecustomerconfiguremakefile解析用户配置文件customize/make/sp8810ga.mak#SPRDBuildSystemBUILD_SPRD_PLATFORM=sc8810BUILD_KERNE_MACHINE=CONFIG_MACH_SP8810BUILD_KERNEL_VERSION=kernelBUILD_UBOOT_VERSION=u-boot#Customizeforcustomerdriver(configuredaccordingtoyourneed)3RDPARTY_BLUETOOTH=BC68883RDPARTY_CAMERA=ov5640:ov2655:ov7675:ov2640:gc0309:nmi6013RDPARTY_LCD=hx83693RDPARTY_GSENSOR=lis3dh3RDPARTY_MSENSOR=akm89753RDPARTY_LSENSOR=AL30063RDPARTY_GPS=gsd4t3RDPARTY_TP=P
本文标题:SpreadtrumAndroid8810_文件编译流程(V100)
链接地址:https://www.777doc.com/doc-638315 .html