展讯开发环境配置_第1页
展讯开发环境配置_第2页
展讯开发环境配置_第3页
展讯开发环境配置_第4页
展讯开发环境配置_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Make/Build环境使用手册主标题:(默认)Arial,(中文)宋体,二号字体,加粗;段落:右对齐,右缩进为3.27字符,单倍行距主标题:(默认)Arial,(中文)宋体,二号字体,加粗;段落:右对齐,右缩进为3.27字符,单倍行距副标题:(默认)Arial,(中文)宋体,四号字体,加粗;段落:右对齐,右缩进为3.27字符,单倍行距副标题:(默认)Arial,(中文)宋体,四号字体,加粗;段落:右对齐,右缩进为3.27字符,单倍行距Version:0.1.52009-10-21文字格式:(默认)Arial,(中文)宋体,四号字体;段落:右对齐,右缩进为3.27字符,单倍行距文字格式:(默认

2、)Arial,(中文)宋体,四号字体;段落:右对齐,右缩进为3.27字符,单倍行距 HYPERLINK 修订历史版本日期作 者审 核说 明0.0.12007-12-11Daniel.LuoCreate0.022008-1-31Daniel.Luo增加客户发布及使用内容0.032009-03-10Mingjianliu基于MOCOR_W09.11修改0.042009-03-31Mingjianliu增加多线程编译,Windows command 编译0.052009-04-09Mingjianliu删除Cygwin 相关所有信息0.062009-04-15Mingjianliu编译命令增加5.1

3、8 特别提醒,新建工程部分增加NV,Resource 部分的说明0.072009-04-20Mingjianliu根据评审结果修改0.082009-04-28Mingjianliu增加编译暂停说明;资源编译说明更新,增加编译出错的一个说明0.092009-05-06Mingjianliu增加对VC模拟器编译说明,提醒修改工程0.102009-05-30MingjianliuResource,NV 说明更新0.112009-07-08Mingjianliu增加通过复制方式创建新工程说明;增加 source Insight 与CC集成说明;增加全局变量和转义宏的实现区分;增加第三方编译选项说明;更

4、新多套资源编译说明0.122009-08-19Mingjianliu1.第三方逻辑部分独立成一个文件Makefile.third-partyMakefile.third-party 2 编译APP 需要调用toolsDEBUG_TOOLBMP2Array 工具3. 增加分布式编译说明.4.鼠标右键增加命令行快捷方式说明5. DOS下输入命令时用Tab键进行命令自动填充6增加动态生成模拟器部分说明0.132009-08-31Mingjianliu更新 3.2 统一编译部分关于:makefile宏赋制值的特别说明0.142009-09-24Mingjianliu更新复制方式创建项目编译脚本 部分:

5、大工程中增加 PRODUCT_BASELIB_DIR变量 及使用说明; MS_Customize/source/product/config 驱动部分根据工程名字自适应 ;7.2.4 项目修改编译选项注意事项更新;更新NV编译选项说明;增加3.5 编译命令最大长度 8K限制0.152009-10-21MingjianliuIn分布式编译,路径不能有括号,担搁括号也不可以.重要声明版权声明本文档中的任何内容受中华人民共和国著作权法的保护,版权所有 2006, 展讯通信有限公司,保留所有权利,但注明引用其他方的内容除外。商标声明本文档中展讯通信有限公司的产品的所有商标是展讯通信有限公司专有,但注明

6、属于其他公司拥有的商标除外。在提及其他公司及其产品时将使用各自公司所拥有的商标,这种使用的目的仅限于引用。不作保证声明展讯通信有限公司不对此文档中的任何内容作任何明示或暗示的陈述或保证,而且不对特定目的的适销性及适用性或者任何间接、特殊或连带的损失承担任何责任。保密声明本文档(包括任何附件)包含的信息是保密信息。接收人了解其获得的本文档是保密的,除用于规定的目的外不得用于任何目的,也不得将本文档泄露给任何第三方。目 录TOC o 1-3 h z HYPERLINK l _Toc243886602 1说明 PAGEREF _Toc243886602 h 6 HYPERLINK l _Toc243

7、886603 2运行环境 PAGEREF _Toc243886603 h 7 HYPERLINK l _Toc243886604 2.1编译环境及安装相关软件 PAGEREF _Toc243886604 h 7 HYPERLINK l _Toc243886605 3编译架构 PAGEREF _Toc243886605 h 8 HYPERLINK l _Toc243886606 4目录结构及关键脚本 PAGEREF _Toc243886606 h 11 HYPERLINK l _Toc243886607 4.1make/build环境的关键目录结构 PAGEREF _Toc243886607 h

8、 11 HYPERLINK l _Toc243886608 4.2关键脚本 PAGEREF _Toc243886608 h 12 HYPERLINK l _Toc243886609 4.2.1Makefile.rules PAGEREF _Toc243886609 h 12 HYPERLINK l _Toc243886610 4.2.2Makefile.modules PAGEREF _Toc243886610 h 13 HYPERLINK l _Toc243886611 4.2.3Makefile.third-party PAGEREF _Toc243886611 h 13 HYPERLIN

9、K l _Toc243886612 4.2.4Makefile.verify PAGEREF _Toc243886612 h 13 HYPERLINK l _Toc243886613 4.2.5Makefile PAGEREF _Toc243886613 h 13 HYPERLINK l _Toc243886614 4.2.6make.bat PAGEREF _Toc243886614 h 13 HYPERLINK l _Toc243886615 5基本命令 PAGEREF _Toc243886615 h 14 HYPERLINK l _Toc243886616 5.1帮助 PAGEREF _

10、Toc243886616 h 14 HYPERLINK l _Toc243886617 5.2编译参数中 projectname 与项目编译脚本对应关系 PAGEREF _Toc243886617 h 14 HYPERLINK l _Toc243886618 5.3编译整个项目update PAGEREF _Toc243886618 h 14 HYPERLINK l _Toc243886619 5.4重新编译整个项目new PAGEREF _Toc243886619 h 15 HYPERLINK l _Toc243886620 5.5清除所有编译结果cleanall PAGEREF _Toc2

11、43886620 h 15 HYPERLINK l _Toc243886621 5.6清除模块编译结果 PAGEREF _Toc243886621 h 15 HYPERLINK l _Toc243886622 5.7编译模块 PAGEREF _Toc243886622 h 15 HYPERLINK l _Toc243886623 5.8生成可执行文件 PAGEREF _Toc243886623 h 15 HYPERLINK l _Toc243886624 5.9编译FDL/bootloader PAGEREF _Toc243886624 h 15 HYPERLINK l _Toc2438866

12、25 5.10编译NV PAGEREF _Toc243886625 h 15 HYPERLINK l _Toc243886626 5.11编译Resource PAGEREF _Toc243886626 h 16 HYPERLINK l _Toc243886627 5.12编译手机模拟器工程 PAGEREF _Toc243886627 h 17 HYPERLINK l _Toc243886628 6其它命令 PAGEREF _Toc243886628 h 20 HYPERLINK l _Toc243886629 6.1编译Logel工具 PAGEREF _Toc243886629 h 20 H

13、YPERLINK l _Toc243886630 6.2pclint 扫描 PAGEREF _Toc243886630 h 20 HYPERLINK l _Toc243886631 6.3编译完成net send提醒功能 PAGEREF _Toc243886631 h 20 HYPERLINK l _Toc243886632 6.4编译命令的简写 PAGEREF _Toc243886632 h 20 HYPERLINK l _Toc243886633 6.5多线程编译 PAGEREF _Toc243886633 h 20 HYPERLINK l _Toc243886634 6.6分布式编译 P

14、AGEREF _Toc243886634 h 21 HYPERLINK l _Toc243886635 6.7编译出错暂停 PAGEREF _Toc243886635 h 21 HYPERLINK l _Toc243886636 6.8特别提醒 PAGEREF _Toc243886636 h 21 HYPERLINK l _Toc243886637 7模块修改及项目定制 PAGEREF _Toc243886637 h 22 HYPERLINK l _Toc243886638 7.1模块修改 PAGEREF _Toc243886638 h 22 HYPERLINK l _Toc243886639

15、 7.1.1模块目录结构调整 PAGEREF _Toc243886639 h 22 HYPERLINK l _Toc243886640 7.1.2添加或删除文件 PAGEREF _Toc243886640 h 22 HYPERLINK l _Toc243886641 7.1.3修改编译选项 PAGEREF _Toc243886641 h 22 HYPERLINK l _Toc243886642 7.1.4新增模块 PAGEREF _Toc243886642 h 23 HYPERLINK l _Toc243886643 7.2项目定制 PAGEREF _Toc243886643 h 23 HYP

16、ERLINK l _Toc243886644 7.2.1创建全新的项目编译脚本 PAGEREF _Toc243886644 h 23 HYPERLINK l _Toc243886645 7.2.2复制方式创建项目编译脚本 PAGEREF _Toc243886645 h 23 HYPERLINK l _Toc243886646 7.2.3添加或删除模块 PAGEREF _Toc243886646 h 24 HYPERLINK l _Toc243886647 7.2.4修改项目编译选项 PAGEREF _Toc243886647 h 24 HYPERLINK l _Toc243886648 7.2

17、.5客户发布及使用 PAGEREF _Toc243886648 h 25 HYPERLINK l _Toc243886649 8第三方编译选项说明 PAGEREF _Toc243886649 h 26 HYPERLINK l _Toc243886650 9相关使用技巧 PAGEREF _Toc243886650 h 27 HYPERLINK l _Toc243886651 9.1查看log文件 PAGEREF _Toc243886651 h 27 HYPERLINK l _Toc243886652 9.2makefile 编译过程中报错: No rule to make target XXX

18、, needed by yyy. PAGEREF _Toc243886652 h 27 HYPERLINK l _Toc243886653 9.3Makefile 中全局变量和转义宏的区分 PAGEREF _Toc243886653 h 27 HYPERLINK l _Toc243886654 9.4Source Insight和ClearCase配置 PAGEREF _Toc243886654 h 27 HYPERLINK l _Toc243886655 9.5鼠标右键命令行快捷方式设置 PAGEREF _Toc243886655 h 30 HYPERLINK l _Toc243886656

19、 9.6DOS下输入命令时用Tab键进行命令自动填充 PAGEREF _Toc243886656 h 30说明Make/Build环境中实现了项目开发和维护使用的GNU标准应用脚本,基于这些应用脚本和相关make工具,Make/Build环境可以完成项目全部代码的编译和二进制文件的生成,对其他一些需要的文件也可以在Make/Build环境中通过编译的方式产生,如fdl,bootloader,nv_parameter,resource等。Make/Build的相关操作命令需要在Windows Command环境下进行,因为每个大工程编译出来的临时文件都独立存放,所以可以通过开启多个Command

20、窗口对多个不同的项目进行同时build。运行环境编译环境及安装相关软件操作系统: 建议 Windows2000 或 windows XPADS(ARM Developer Suit V1.2) 注意需要安装 848 的patch,查看方法见下图:Microsoft Excel 2000 或者 Microsoft Excel 2003 或者 WPS 2005及以上版本(用于编译资源):Microsoft Visual C+ 6.0 需要安装sp6补丁(用于编译模拟器)保证源代码文件中的make 配置文件 Makefile.rules 中各项配置均正确编译架构对一个项目的所有模块和要使用的一些工具

21、,目前是采用两种方式编译。1独立的makefile编译目前采用独立的makefile编译的模块有: fdl1fdl2bootloadernv_parameterresourcelogelwinsimulatorpclint这些模块或功能,对应的 make/module_name/module_name.mk 本身已经是一个完整的makefile文件,直接调用就可以了。目前实现方式是在 大的工程文件中,将这些模块的列表对INDEPENDENT 赋值,指示这些模块需要单独编译。采用独立编译的的另外一个特点是他们一般不参与大工程的link,往往只是一些辅助工具。# independent compi

22、le INDEPENDENT=nor_fdllogel winsimulator_lib winsimulator_r_nor resource如果项目有新的模块或工具需要独立编译,可以实现makefile 并将他们的名字添加到INDEPENDENT 的列表总即可。编译方式为 :make PROJECT=projectname MODULES=bootloader注意: 独立编译的模块,通过这种方式调用只能执行默认的最终目标。 2 统一方式编译绝大部分的模块都是通过这种编译方式来完成编译的。这种编译方式使用一致的依赖关系生成方法,统一控制编译的行为。对应的 make/module_name/m

23、odule_name.mk文件并不是一个完整的makefile 文件,一般其中只包含编译需要的宏列表,文件列表,搜索文件路径 即可。其他都由框架自动完成。在您的项目需要添加模块时,推荐您使用这种方式。每个大工程在编译的时候,会自动将Feature Options 部分转义成真正的代码中使用的宏传给相应的子模块,在对子模块代码编译的时候,自动附加上这些宏。转义的规则如下:1对 开关型的 Feature Options ,当Feature Options 为TRUE 时转义,为FALSE时不转义exportNANDBOOT_SUPPORT = TRUE# Boot From Nandflash S

24、upport:# Option1:TRUE# Option2:FALSE对上面的定义也就是 转义一个宏 -DNANDBOOT_SUPPORT. 2. 对 列表型的 Feature Options ,将Feature Options的名字和值拼接起来转义成一个宏,同时对非NONE 的值,同时转义一个Feature Options 名字的宏。export SUBLCD_SIZE = 96X64 # Resolution Of Main LCD # Option1:NONE #define SUBLCD_SIZE_NONE# Option2:96X64 #define SUBLCD_SIZE_96X

25、64 对上面的定义也就是 转义一个宏 -DSUBLCD_SIZE_96X64 -DSUBLCD_SIZE转义的宏临时文件存放在如下位置,每次编译的时候该文件会自动更新.MS_Codebuildprojectname_builddirtmpprojectname_public_macro.txtMS_Codebuildprojectnam_builddirtmpprojectname_public_macro_s.txt特别注意:1Feature Options 的书写请严格按照上述的示例书写,当对工程中Feature Options转义的时候,对符合下面模板的行都会转义。exportNANDB

26、OOT_SUPPORT = TRUE #示例如下: 大工程 project_rocky_3201.mk中有如下片段 代码中可以这样使用:2Feature Options 只能出现在大工程中,在子make中定义和赋值都是无效的,并且会导致编译结果不正确;3Feature Options 只接受直接赋值,不能包含在条件语句中;4Feature Options 只能赋值一次。3 编译的依赖关系在统一方式编译下,系统会自动生成依赖关系文件,这些依赖关系文件存放在MS_Codebuildprojectname_builddirdep 下。 注意: makefile中的配置文件 Makefile.rule

27、s没有作为依赖,所以其内容改变时,用update参数编译时将不自动编译相应文件.对编译后生成的 .a 文件及其相应的依赖文件,这些文件默认都有固定的存放位置,没有特别需求,请不要改变,否则有可能造成编译依赖错误,导致出现一些问题.4 Debug 版本和Release版本SPRD MOCOR平台Debug 版本和Release版本的控制是通过在大makefile工程中对宏RELEASE_INFO 赋不同值来实现的。默认情况下这个RELEASE_INFO的值为FALSE, 即 Debug 版本。Debug 版本:RELEASE_INFO=FALSE用这个配置编译出来的所有文件都是Debug版本的,

28、包括bin文件,NV,等Release版本:RELEASE_INFO=TRUE 用这个配置编译出来的所有文件都是Release版本的,包括bin文件,NV,等.5 编译命令最大长度 8K限制注意:Windows 环境最大只支持8K长度的命令,所以请控制宏的数量,搜索目录的数量,防止命令行超长而无法编译.目录结构及关键脚本make/build环境的关键目录结构MS_Codebuild编译结果的输出总目录rocky_3201_builddir和具体项目名称对应,自动生成的输出目录dep编译依赖文件存放目录img编译最终结果存放目录,包括arm bin,fdl,bootloader,resource

29、,nv等lib客户编译模块.a存放目录log编译log文件目录,包括编译出错信息、告警信息等nv编译生成的nv_parameter文件目录fdl_bootloader编译生成的fdl bootloader文件目录res编译生成的resource文件目录pclint编译生成的pclint文件目录tmp编译生成的临时文件目录obj模块目标文件存放目录win自动生成模拟器工程存放目录rocky_6901_builddirchip_drvMS_RefPSatccommonnv_parameters统一NV project存放目录source目标统一main.c存放目录make依据编译选项文件,make

30、file将自动搜寻该目录并循环| 对模块进行编译aacaac.mk对应模块的编译脚本 | |MS_Customizeconfigcustomproduct区分不同产品驱动配置文件version目标统一版本version.cMS_MMIThird-party从MS_APP下link过来保持目录结构bt_csrincludeliblib展讯开放库文件目录存放地和build目录分开fdl_bootloaderfdl bootloader 存放目录make/build环境的关键目录如上图所示,所有相关代码和脚本都统一集中在MS_Code目录下,下面将对特殊的目录做些详细的说明:build目录bulil

31、d目录及其下的相关内容在程序编译过程中自动生成,对于特定的项目,build目录会生成projectname_builddir目录,并在该目录下自动生成dep、img、lib、log、nv、tmp及obj等目录。make目录make目录存放和模块对应的编译脚本,子目录和模块呈一一对应关系,各个子目录中存放着和目录名称对应的脚本文件。一旦有了新添的模块源文件或删减,相关脚本需要进行修改。同样,如果有了新增的模块,则需要在make目录下建立新的模块子目录。相关过程在后面会有更详尽的描述。MS_Customize目录和项目相关的scatter file文件存放在MS_Customize目录中,需要注意

32、该文件名称需要和项目名称保持一致。version目录version目录中存放项目相关的version.c文件,目前需要注意该文件名称需要和项目名称保持一致。关键脚本在MS_Code目录下存放有Makefile.rules、Makefile.modules、Makefile以及项目的相关make脚本,即项目编译脚本,比如project_rocky_3201.mk等等,同时在make目录的各个子目录下存放有各个模块的make脚本,即模块编译脚本,比如aac.mk、app.mk等等。一般情况下开发人员仅维护项目编译脚本即可,Makefile.rules、Makefile.modules和Makefi

33、le不需要修改。针对模块和项目的变化,开发人员需要修改模块编译脚本和增加新的项目编译脚本。下面将针对Makefile.rules、Makefile.modules和Makefile进行简单的说明,关于模块编译脚本和项目编译脚本将在后面的章节中详细描述。Makefile.rulesMakefile.rules中定义了绝大部分平台无关、模块无关以及项目无关的公共变量,其中包括编译器的指定、公共编译参数的定义、文件复制、删除、目录创建等系统命令、公共头文件路径、SPRD库路径以及第三方库文件路径等变量的定义。这些需要指出的是语句:ARM_HOME=C:/Program Files/ARM/ADSv1

34、_2ARMCC =$(ARM_HOME)/Bin/armccCC =$(ARM_HOME)/Bin/tccCPP =$(ARM_HOME)/Bin/tcppASM =$(ARM_HOME)/Bin/armasmLINK =$(ARM_HOME)/Bin/armlinkAR =$(ARM_HOME)/Bin/armarFROMELF =$(ARM_HOME)/Bin/fromelfARMINC =$(ARM_HOME)/Include请根据您的机器上的软件安装情况修改这些设置。另外,在Makefile.rules中定义了编译器公共编译选项CFLAGS,CFLAGS 的定义如下:CFLAGS =

35、$(DEFINES) $(OPTFLAGS) $(WARNFLAGS) $(DEBUGFLAGS)即CFLAGS是由:DEFINES、OPTFLAGS、WARNFLAGS及DEBUGFLAG这四个变量组合而成,其定义分别如下:DEFINES = OPTFLAGS = -O1 -bi -g+ -apcs /interwork/swst -fy -D_RTOS -D_DEBUG -EcWARNFLAGS = -WallDEBUGFLAGS =组合后的编译选项构成了各个模块编译器选项的公共部分,如果有特殊需要(比如过滤特定的告警信息),则可以修改相关选项。如果有模块需要扩充编译选项,则可以在模块自己

36、的模块编译选择项中进行添加,这样也不会影响到其它模块。除此之外,该文件一般不需要维护。Makefile.modulesMakefile.modules定义了make/bulid系统中的目标依赖关系,一般开发中不需要维护该文件,这里需要指出的是:目前有部分模块采用了armcc编译器(比如:mpeg4_codec),对于这部分模块需要在Makefile.modules中申明,具体操作可以参考该文件中已经被申明的相关模块部分。Makefile.third-partyMakefile.third-party 将第三方逻辑独立成一个文件,便于维护,这个文件会 被include到各工程.mk 中.Make

37、file.verifyMakefile.verify 对makefile中的宏的父子关系进行校验,防止出错.MakefileMakefile是最上层的总控脚本,该脚本直接处理用户的命令,并执行相关的处理,在没有特殊需要的情况下用户不需要维护该文件。make.batmakefile的外壳文件,请不要直接运行,主要用来对make附加一些额外的参数.基本命令make/build的所有操作命令都要在Windows Command 下执行,并且需要在关键脚本的当前路径,即MS_Code目录下完成输入。示例如下:帮助在MS_Code目录下输入make help可以获得相关的帮助信息,这些相关信息内容可以从

38、下面对于小节中获取更详细的内容,这里不再重复。编译参数中 projectname 与项目编译脚本对应关系在编译项目时,会使用类似make PROJECT=projectname命令,这里projectname必须和项目编译脚本的名称保持一定的对应关系,否则系统会报:Project defined Makefile project_projectname.mk is not exist!这样的错误。如项目编译脚本文件名为 project_rocky_3201.mk,则projectname的内容为rocky_3201,因此我们可以执行如下的命令来实现编译 make PROJECT=rocky_3

39、201编译整个项目update在MS_Code目录下输入make PROJECT=projectname或make PROJECT=projectname update命令,makefile根据已有的依赖关系编译因修改涉及到的相关的模块并在没有错误出现的情况下完成最终的链接,若不存在依赖关系,makefile 会在编译文件时自动生成依赖关系。因为只编译较少的模块文件,可以节省编译时间。这个命令也会将 fdl,bootloader,NV 同时编译出来。重新编译整个项目new在MS_Code目录下输入make PROJECT=projectname new,该命令将清除编译过程中生成的全部目标码和

40、库文件,然后对projectname所指定的项目进行整体编译并在没有错误出现的情况下完成最终的链接,编译过程中会自动生成依赖关系。会这一命令适合在项目进行了较大修改:比如公共头文件数据结构发生变化、公共接口参数发生变化、文件更新中时间戳混乱或makefile相关脚本被修改等等情况下建议使用这一命令,确保重新对项目进行完全编译得到正确的输出结果。这个命令也会将 fdl,bootloader,NV ,Resource同时编译出来。该命令相当于运行如下3个命令make PROJECT=projectname cleanallmake PROJECT=projectname MODULES=resou

41、rcemake PROJECT=projectname update清除所有编译结果cleanall在MS_Code目录下输入make PROJECT=projectname cleanall,该命令将清除编译过程中生成的全部目标码和库文件。清除模块编译结果在MS_Code目录下输入make PROJECT=projectname MODULES=”module1 module2 ” clean,该命令将清除指定模块的编译输出结果,其中包含指定模块的目标文件和库文件。该命令适合在指定模块内部出现重大修改或者模块本身makefile脚本被修改,在进行模块编译前使用。编译模块在MS_Code目录下

42、输入make PROJECT=projectname MODULES=”module1 module2 ” update,该命令将对指定模块进行编译,但不会编译完成后进行自动链接。该命令属于模块开发人员最常用的命令,在具体模块开发中需要经常使用该命令来验证模块的编译完整性。生成可执行文件在MS_Code目录下输入make PROJECT=projectname image可以进行链接生成相关的可执行文件,该命令可以在模块修改并编译完成后进行,也适合第三方库文件更新后进行。编译FDL/bootloader在MS_Code目录下输入make PROJECT=projectname MODULES=

43、bootloader对bootloader编译在MS_Code目录下输入make PROJECT=projectname MODULES=fdl1对fdl1进行编译。在MS_Code目录下输入make PROJECT=projectname MODULES=fdl2对fdl2进行编译。在MS_Code目录下输入make PROJECT=projectname MODULES=nor_fdl 对nor_fdl 进行编译。输出结果位置: build/projectname_builddir/fdl_bootloader.同时会自动将最终的bin文件copy 到build/projectname_b

44、uilddir/img 下,方便下载到手机中。当然,您也可以根据工程具体情况用一条命令编译出所有目标,示例如下:make PROJECT=rocky_6901 MODULES=fdl1 fdl2 bootloadermake PROJECT=rocky_3201 MODULES=nor_fdl编译NV在MS_Code目录下输入make PROJECT=projectname MODULES=nv_parameter 对nv_parameter编译输出结果位置: build/projectname_builddir/nvm。同时会自动将最终的bin文件copy 到build/projectnam

45、e_builddir/img 下,方便下载到手机中。注意:1.当 大工程中的 RELEASE_INFO 的值为 TRUE 时编译出来的 NV 自动为 Release 版本的NV2. 大工程中的 RELEASE_INFO 的值为 FALSE 时编译出来的 NV 自动为 Debug 版本的NV3. 平台发布的代码中没有NV prj,即此时是无法使用NVEditor打开,需要使用make指令编译后才会生成。4.请注意make/nv_parameter/nv_parameter.mk,这个文件中定义了NV 的配置信息,请确定是否满足项目的需要。5请注意make/nv_parameter/config_

46、info.nv文件,这个文件里的配置项,根据里面的判断条件,如果成立会覆盖到make生成的nv中。这里比较关系大的是,如果是release版本,据此会自动配置一些nv项目。所以客户正式出货的版本一定是用make生成,而不建议用nveditor生成,以防漏配置。6如果希望修改某项参数,例如希望修改nv_type.nvm某项,应该在使用make指令编译出NV后,使用NVEDITOR打开,修改后保存,此时修改后的nvm文件保存在build目录下,此时应该将此文件拷贝回common/nv_parameters目录。否则修改的文件经过重新编译后,会被冲掉。编译Resource在MS_Code目录下输入m

47、ake PROJECT=projectname MODULES=resource 对Resource编译对一个工程来说,资源定义在大工程文件中,分两部分export MAINLCD_SIZE = 240X320 # Resolution Of Main LCD: # Option1:240X320 #define MAINLCD_SIZE_240X320 # Option2:240X400 #define MAINLCD_SIZE_240X400export MMI_RES_DIR = mmi_res_240 x320 # resource directory# Option1:mmi_res

48、_240 x320 # Option2:mmi_res_240 x400MAINLCD_SIZE用来说明资源对应的LCD 分辨率,MMI_RES_DIR 指定对应的资源的文件夹位置。这里增加了一个变量 MMI_RES_DIR的目的是某些情况下,同一分辨率对应的资源有可能有多套。另一个与资源相关的变量是 SPECIAL_EFFECT_ICON_SIZE,这个文件与工程 app 模块相关,也请一并修改export SPECIAL_EFFECT_ICON_SIZE = 60X60 # Wide x Height of special effect icon # Option1:60X60 if MA

49、INLCD_SIZE = 240X320 or 240X400# Option2:45X40 if MAINLCD_SIZE = 176X220输出结果位置: build/projectname_builddir/res。同时会自动将最终的bin文件copy 到build/projectname_builddir/img 下,方便下载到手机中。默认情况下编译Resource 使用了 大工程中的Feature Options 转义的宏 和 app.mk 模块中的宏,如果您的项目资源编译需要使用其他的模块的宏,请修改resource.mk文件。资源编译时产生的一些细节log信息记录在build/p

50、rojectname_builddir/res 下的一些以资源名为前缀的.txt 文件中.如对mmi_res_240 x320 资源,log文件名如下:mmi_res_240 x320_font.txtmmi_res_240 x320_imag.txtmmi_res_240 x320_ring.txt注意:如果一个大工程需要更换不用的资源,修改MAINLCD_SIZE与MMI_RES_DIR的值即可.因为资源与Code 相关性,还要注意修改 SPECIAL_EFFECT_ICON_SIZE的值用Nand makefile 工程编译出来的模拟器资源文件,匹配VC的 nand 模拟器工程用Nor

51、makefile 工程编译出来的模拟器资源文件,匹配VC的 Nor 模拟器工程请不要对几个工程同时编译资源,程序并发有可能会导致某些工程资源编译出错!尽量保持VC的模拟器工程与makefile工程的宏的使用一致。编译 Resource 与 APP 模块时,都要调用Tools 里的一些工具,如BMP2Array等,请尽量保持工具的完整性.编译手机模拟器工程原方式 :编译 MS_CodeMS_MMIsourcewinsimulator_tpwin_platform 下的 dsw 即可。新方式:模拟器工程通过makefile 动态生成的.然后直接编译即可.使用类似如下的命令可在该工程的build 临

52、时文件夹 的win 下生成对应的所有.dsp ,dsw 文件make PROJECT=sc6600l_sp6601l MODULES=simulator新方式说明:功能说明:通过对 MOCOR 平台 makefile 大工程文件分析,取得要编译的文件列表,宏,搜索路径等信息后自动生成对应的 VC dsp 工程文件和一个 simulator.dsw 的工作空间文件,执行simulator.dsw 就可以编译出模拟器使用的.dll文件.文件说明:simulator.mk (make/simulator/simulator.mk) 指示模拟器需要使用的模块列表,特别指定的编译宏列表,及完成生成模拟器

53、的所有工作simulator.ini (make/simulator/simulator.ini)配置文件,用来指示 模拟器工程与make工程在 文件,宏,搜索路径的差异。其中msdevkernel 为总dsp文件,模拟器工程需要的所有lib文件如第三方.lib文件等都要加到这个工程中。该文件支持代码宏,示例如下:#ifdef PLATFORM_SC6600Lchip_drv += chip_drv/source/c/ivsp_drv_6600l.c#endifsimulator.ini 说明:ADD_INC_PATH用来指示除makefile对应工程的搜索路径外,dsp工程中还需要增加的搜索

54、路径DEL_INC_PATH用来指示在makefile对应工程的搜索路径中需要删除的搜索路径ADD_OPTION用来指示除makefile对应工程的搜索路径外,dsp工程中还需要增加的编译宏注意:宏列表需要用来引起来,如 app = USB_WEBCAMERA_SUPPORT USB_LOGDEL_OPTION用来指示在makefile对应工程的编译宏中需要删除的宏注意:宏列表需要用来引起来,如 rtos=_RTOS WIN32 _DEBUG _MBCS _LIB _RTOS _ENABLE_LOG_TOOLADD_FILE用来指示除makefile对应工程的文件外,dsp工程中还需要增加的文

55、件DEL_FILE用来指示在makefile对应工程的文件中需要删除的文件,如果具体某个模块的值为 * 则表示这个模块的所有文件都删除REPLACE_FILE用来指示在makefile对应工程的文件中路径的替换使用技巧:1. 6600L 平台ARM 端JPG 为硬解码,模拟器上怎么办?: simulator.mk 中 对 macro_set 赋值 ifeq ($(strip $(JPG_DEC_SUPPORT), JPG_HW) macro_set += JPG_DEC_SUPPORT=JPG_SW endif ifeq ($(strip $(JPG_ENC_SUPPORT), JPG_HW)

56、 macro_set += JPG_ENC_SUPPORT=JPG_SW endif simulator.ini 修改如下: DEL_OPTION global = #if defined(JPG_DEC_SUPPORT_JPG_HW) global += JPG_DEC_SUPPORT_JPG_HW #endif #if defined(JPG_ENC_SUPPORT_JPG_HW) global += JPG_ENC_SUPPORT_JPG_HW #endif ADD_OPTION global = WIN32 _DEBUG _MBCS _LIB THREADX_OS _RTOS #if

57、defined(JPG_DEC_SUPPORT_JPG_HW) global += JPG_DEC_SUPPORT_JPG_SW #endif #if defined(JPG_ENC_SUPPORT_JPG_HW) global += JPG_ENC_SUPPORT_JPG_SW #endif2. 6600L 平台CMMB在模拟器上还没有调好,怎么先禁掉该功能? simulator.mk 中 对 macro_set 赋值 ifeq ($(strip $(CMMB_SUPPORT), TRUE) macro_set += CMMB_SUPPORT=FALSE endif simulator.in

58、i 修改如下 DEL_OPTION global = #if defined(CMMB_SUPPORT) global += CMMB_SUPPORT #endif其它命令编译Logel工具对 SPRD,可以在MS_Code目录下输入make PROJECT=rocky_3201 MODULES=logel clean update 对logel工具进行编译。注意,编译这个工具需要 perl 5.8 。 注意:SPRD 客户无法使用该命令pclint 扫描对 SPRD。可以在MS_Code目录下输入make PROJECT=rocky_3201 pclint 对全部模块代码进行pclint 扫

59、描。输入make PROJECT=rocky_3201 MODULES=”app gui ps”pclint 对指定的模块代码进行pclint扫描。编译完成net send提醒功能在MS_Code目录下输入类似如下命令 make PROJECT=rocky_3201 ip=make PROJECT=rocky_3201 ip=pcname当代码编译完成时,会自动向指定的IP地址或机器名 发一个 net send 消息,说明该工程编译是否成功。注意,这个命令只在生成 image 后才调用,单独编译某个模块并不 生成 image 时并不会调用。编译命令的简写make PROJECT=rocky_3

60、201 MODULES=”app gui ps”可以简写为make p=rocky_3201 m=”app gui ps”make PROJECT=rocky_3201 new可以简写为make p=rocky_3201 new多线程编译SPRD makefile支持多线程编译,可以充分利用多核CPU 的优势,加快编译速度.您必须通过显式的方式指定开启线程数:make p=rocky_3201 new job=其中表示编译时同时启动线程个数,CPU 核心越多,这个数字可以越大,注意这个数字过大会增加系统调度负担。建议:单核CPU make p=rocky_3201 new双核CPU make

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论