《ADS开发工具的使用.pptx》由会员分享,可在线阅读,更多相关《ADS开发工具的使用.pptx(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、软件开发系统软件开发步骤图:系统软件开发大致上可分为四个步骤:1、程序的编辑2、编译3、链接4、调试。第1页/共77页硬件调试示意图 第2页/共77页1.1 ADS1.1 ADS集成开发工具名称描述使用方式集成开发环境CodeWarrior for ADS,IDE开发环境集成了工程管理、程序编辑、编译和链接等功能代码生成工具 针对ARM的汇编器,C、C+编译器,链接器 DOS命令行方式调用,或IDE 图形方式调用调试器AXD,ADW/ADU,armsd仿真调试、下载指令模拟器ARMulator由AXD调用,软件仿真ARM开发包一些底层的例程,实用程序用户使用ARM应用库C、C+函数库等用户
2、程序使用ARM ADS全称为 ARM Developer Suite,是 ARM 公司推出的新一代ARM 集成开发工具。的最新版本是ADS 1.2 ADS集成开发工具组成部分:第3页/共77页 Code Warrior IDE集成了ARM汇编、ARM的C/C+编译器、Thumb的C/C+编译器、ARM链接器,包含工程管理器、代码生成接口、编辑器、源文件、类浏览器等等。Code Warrior IDE窗口:1 1Code Warrior IDECode Warrior IDE简介第4页/共77页AXD调试器为ARM扩展调试器(ARM eXtended Debugger),包括ADW/ADU的所有
3、特性,支持硬件仿真和软件仿真(ARMulator)。AXD调试器窗口如图所示:2 2AXDAXD调试器简介第5页/共77页1.2 ADS1.2 ADS开发环境的系统资源1 1ADSADS安装系统包含的可选文件ADS安装系统包含的组件:Program Files(主程序文件)、Example Files(例子程序)、Online documentation(在线文档)、Extension kits(扩展的ARM仿真工具包)、Applications Library(应用库)等,在安装过程中可以按照需要选择安装。如图所示。第6页/共77页2 2ADSADS环境中的重要目录假设ADS1.2开发工具包
4、的安装路径为install_directory,ARM中C/C+库的存放位置:install_directorylibarmlib;install_directorylibcpplib,对应的头文件存放在nstall_directoryinclude下。ARM中工具文件的存放位置:所有的工具文件都在路径为install_directorybin的目录下,在这个bin目录下包含了一些非常重要的工具文件,如图所示。第7页/共77页重要的工具文件:armasm:ARM汇编语言编译器,把ARM/Thumb指令的汇编语言源文件编译成相应的二进制代码。armcc:ARM C语言编译器,把C语言源程序编译成
5、32位的ARM指令代码;armcpp:ARM C+语言编译器,把C+语言源程序编译成32位的ARM指令代码;tcc:ARM C语言编译器,把C语言源程序编译成16位的Thumb指令代码;tcpp:ARM C+语言编译器,把C+语言源程序编译成16位的Thumb指令代码;armlink:ARM链接器,把编译输出的ELF格式的目标文件以及相关的C和C+运行库链接在一起,根据提供的地址信息生成可执行的映像文件。第8页/共77页二、程序的编辑1.1 工程管理窗口介绍1 1为什么要建立工程项目把相互关联的文件包含在一个工程项目里,便于管理和编译。第9页/共77页工程模板的含义分别是:1 1、ARM Ex
6、ecutable ImageARM Executable Image:以这个模板建立的工程项目中,所有源文件中的ARM代码可编译成一个可执行的ELF格式的映像文件;2 2、ARM Object LibraryARM Object Library:以这个模板建立的工程项目中,所有源文件中的ARM代码可编译成一个armar格式的目标库;3 3、Empty ProjectEmpty Project:创建一个空的工程项目;4 4、Makefile Import WizardMakefile Import Wizard:导入Makefile文件,编译后可转化成CodeWarrior工程文件;5 5、Th
7、umb ARM Interworking ImageThumb ARM Interworking Image:以这个模板建立的工程项目中,支持ARM和Thumb代码混合编程,所有源代码可编译成一个可执行的ELF格式的映像文件;6 6、Thumb Executable ImageThumb Executable Image:以这个模板建立的工程项目中,所有源文件中的Thumb代码可编译成一个可执行的ELF格式的映像文件;7 7、Thumb Object LibraryThumb Object Library:以这个模板建立的工程项目中,所有源文件中的Thumb代码可编译成一个armar格式的目标
8、库。第10页/共77页2 2工程管理窗口界面介绍 工程管理窗口提供了编辑、查看、编译和链接工程等多种功能。工程管理窗口图:第11页/共77页按钮具体功能:生成目标:下拉菜单,选择该工程的生成目标。可选的生成目标有Debug、DebugRel、Release三个;标签栏:点击标签栏,分别显示不同的窗口;工具条:列举了一些常用功能的快捷按钮,实现对本工程项目设置参数、编译、调试、运行等操作;Touch列:指示该文件是否被编译或汇编,如果某个文件对应的Touch列打上,则表示该文件需要重新编译或汇编;Code列:显示源文件中代码的大小或者该组源文件代码大小之和,单位为字节;Data列:显示源文件中数
9、据的大小或者该组源文件数据大小之和,单位为字节;下拉列:在某个文件的下拉列处单击,会弹出一个下拉菜单,下拉菜单包含如下内容:列举该文件包含的头文件,用户可以点击打开某个头文件;允许用户标记该文件重新编译或汇编。第12页/共77页1.2 1.2 代码编辑窗口介绍 第13页/共77页单击 图标,会弹出一个头文件下拉莱单。在这个下拉菜单中,包含当前文件涉及的所有头文件,如图所示。1 1头文件下拉菜单第14页/共77页单击 图标,会弹出一个函数下拉菜单。在这个下拉菜单中,包含当前文件所有的函数。函数排列的顺序有两种:第一种默认按照在源文件中的先后顺序排列;另外一种也可以设置为按英文字符顺序排列。3 3
10、标签下拉菜单单击 图标,会弹出一个标签下拉菜单。在这个下拉菜单中,包含当前文件中所有的标签。标签排列的顺序与源文件中的先后顺序一致。2 2函数下拉莱单 图中,标签下拉菜单第1行Add marker是加标签选项按纽,第2行Removemarkers是删除标签选项按纽。第15页/共77页4 4文档设置下拉菜单 单击 图标,会弹出一个文档设置下拉菜单。从这个菜单中可以打开或关闭当前编辑画面的颜色,关闭颜色会使画面变成单色,打开颜色会使画面变成由菜单“Edit”“Preferences”“Editor”“Text Colors”所设置的颜色。5 5版本控制下拉菜单 单击 图标,弹出一个版本控制下拉菜单
11、 VCS(Version Control System)。这个下拉菜单提供当前文件的操作记录,可以帮助维护源程序的数据库,也可以使用这个下拉菜单从源文件中拷贝程序,检查修改的文件。VCS功能使用条件:一个是在 Codewarrior IDE中装入所需要的VCS插件程序;另一个就是在VCS功能配置选项中打开该项功能。6 6文件修改标志文件修改标志包括 和 ,这两个标志在编辑屏幕的右上角。如果当前程序从上一次存储以来没有修改过,则显示 标志;如果程序被修改过,则显示 标志,程序存储后又重新显示 标志。第16页/共77页1.3 编辑画面的设置第17页/共77页 1.Editor Settings 1
12、.Editor Settings选项卡 设置Remember(保存)选项 Font preferences Font preferences系统会为每个文件保存程序员输入时选定的字体信如果不选择该选项,所有的文件都默认由 Codewarrior IDE设置的字体。Window position and sizeWindow position and size系统会自动保存程序编辑窗口在关闭时的位置和尺寸,以便在下次打开编辑窗口时与这次完全相同。Selection positionSelection position该选项决定文件打开时程序在编辑窗口中的位置。第18页/共77页 设置Contex
13、tualContextual(级联)选项 Edit Commands Edit Commands选择该选项,在编辑器窗口的级联菜单中将包含常用的编辑命令。Project CommandsProject Commands选择该选项,在编辑器窗口的级联菜中将包含常用的项目操作命令:Compile、Proprocess和Disassemble。VCS CommandsVCS Commands选择该选项,在编辑器窗口的级联莱中将包含常用的版本控制命令。Browser CommandsBrowser Commands选择该选项,在编辑器窗口的级联菜中增加一条浏览器命令。Insert Template C
14、ommandsInsert Template Commands插入函数模板选项。Debugger CommandsDebugger Commands在 CodeWarrior IDE中,Debug功能是不使用的,本选项无效。第19页/共77页 其他设置 Balance while typing Balance while typing:这个选项要求 CodeWarrior IDE检测圆括号、方括号和大括弧的匹配性。Use multiple undo Use multiple undo:在编辑菜单中,有一个 Undo 功能和一个 Redo 功能。Relaxed C popup parsing R
15、elaxed C popup parsing:如果在源代码中使用 K&R风格的代码转换,就应该选择该选项 Drag and drop editing Drag and drop editing:将编辑屏幕分割成多个编辑窗口功能。Left margin click selects line Left margin click selects line:左边沿编辑功能选项。Sort fuction popup Sort fuction popup:函数分类选项。在编辑窗口有一排工具图标,其中左边起第2个是函数列表图标。Enable Virtual Space Enable Virtual Spac
16、e:选择该选项,可以在源程序行后面任意位置进行插入操作。Balance Flash Delay Balance Flash Delay:在上面Balance while typing选项中所应用的时间延时,单位是160 s。Default file format Default file format:系统默认的文本文件格式第20页/共77页 2 2Font&TabsFont&Tabs选项卡第21页/共77页 Font settings 具体内容如下:Font该选项是字体选项。Size该选项用于决定输入字符的尺寸。Script该栏不是可选项,当Font栏选择西文时,该栏显示“西方”;当Font
17、栏选择中文时,该栏显示“CHINESE_GB2312”。Sample样本显示栏。Document tab settings 和 Global tab settings Tab空格数。Auto Indent编辑行自动缩进选项。Tab indents selectionTab行缩进选项。Tab Inserts Spaces选择该选项时,按 Tab键时插入的是空格字符,而不是制表字符。第22页/共77页3 3Text ColorsText Colors选项卡第23页/共77页Foreground:该选项指定的颜色用于文本中除下列各选项规定的字符外的所有其余字符;Background:该选项指定编辑画
18、面的背景颜色;Comments:文本注释颜色选项;Keywords:关键字颜色选项;Strings:字符串颜色选项;Custom Keywords:自定义关键字的颜色(Set1Set4);Classes:类别颜色;Functions:函数颜色;Temlates:模板颜色;Constants:常量颜色;Globals:全局变量颜色;Enums:枚举颜色;Macros:宏颜色;Other:其他颜色。第24页/共77页三、程序的汇编与编译1.1 汇编与编译通常把从汇编语言变换到目标代码的过程称为汇编,通常把从其他高级语言变换到汇编语言的过程称为编译,编译器名称编译器种类源文件类型源文件后缀输出的目标
19、文件类型armccCC*.c32位ARM代码TccCC*.c16位Thumb代码armcppC+C/C+*.c/*.cpp32位ARM代码TcppC+C/C+*.c/*.cpp16位Thumb代码ADS1.2集成开发环境中的C/C+编译器 第25页/共77页ADS1.2集成开发环境就是使用工具的任务:查找程序中存在的错误,比如语法错误、逻辑错误等 把C/C+语言程序编译成汇编语言程序,然后再把汇编语言程序汇编成目标代码。生成列表文件和供链接用的目标代码文件等。用两种方式实现同一个源文件的汇编 第26页/共77页DebugRel Settings对话框第27页/共77页1.Target 1.Ta
20、rget 生成目标基本选项设置面板,用于设置当前生成目标的一些基本信息。2 2Language SettingsLanguage Settings汇编器、编译器工具的选项设置面板,这些选项设置直接关系到汇编/编译工具如何对工程中所有源文件进行汇编和编译。设置面板名称ARM AssemblerARM C CompilerARM C+CompilerThumb C CompilerThumb C+Compiler对应工具名称armasmarmccarmcpptcctcpp3.Linker链接器选项设置面板,用于设置与链接器相关的选项以及fromELF工具相关的选项。4.Editor编辑器选项设置面
21、板,用于设置用户个性化的关键词显示方式。5.Debugger调试器选项设置面板,用于设置系统中选用的调试器以及相关的配置选项。6.Miscellaneous Settings其他选项设置面板,用于设置一些杂类的选项。第28页/共77页1.2 ARM汇编器armasm的设置第29页/共77页1 1TargetTarget选项卡 Architecture or Processor Architecture or Processor设置目标CPU类型,等同于命令行中的-cpu cpu选项。Floating PointFloating Point选择fpu的体系结构,等同于命令行中的-fpu name
22、选项。Initial StateInitial State设置初始状态下指令代码类型,等同于命令行中的-16|-32选项。Byte OrderByte Order选择大端或小端数据格式,等同于命令行中的-bigend|-littleend选项。Equivalent Command LineEquivalent Command Line等效的命令行。第30页/共77页2 2ATPCSATPCS选项卡 Calling Standard Calling Standard该选项栏下指定是否选择ATPCS标准。Predeclared Register NamesPredeclared Register
23、Names预定义寄存器名,如果选中了ATPCS单选框,表示ADS系统默认寄存器的预定义功能。ARM/Thumb Procedure Call Standard OptionsARM/Thumb Procedure Call Standard Options这个选项栏中包含了许多子选项。Software stackSoftware stack是否支持软件堆栈。第31页/共77页3 3OptionsOptions选项卡第32页/共77页 Check Register Lists Check Register Lists寄存器列表顺序核对选项。No WarningsNo Warnings报警信息选项
24、。选择该选项时,汇编时不生成警告信息。Source Line DebugSource Line Debug选中该项,汇编时生成DWARF2格式的调试信息表。Keep SymbolsKeep Symbols选中该项,对源文件汇编时会把局部标号保留在目标文件的符号表中,供调试使用。Ignore C-style escape charactersIgnore C-style escape characters选中该选项,对源文件汇编时,忽略C风格的换码字符,如n和t等。Fault long running Load and Store MultiplesFault long running Load
25、 and Store Multiples选择该选项,在对源程序汇编时,将检查指令LDM和STM的寄存器列表不得超过5个。第33页/共77页4 4PredefinesPredefines选项卡在Variable文本框中填写count,在Directive下拉框中选择SETA(下拉框中包括SETA、SETL、SETS),在Numeric文本框中填写数字10,然后单击Add按钮,则全局变量count定义完毕,并在List of Predefines列表栏中会显示count SETA 10。第34页/共77页5 5Listing ControlListing Control选项卡 Miscellane
26、ousn Listing on:选中该选项,则汇编时会生成一个详细的列表文件,文件名与源文件名相同,后缀为.lst。n Terse:精简列表文件选项。n Cross-references:符号交叉引用信息选项。Dimensions该选项栏中可以定义列表文件宽度和长度,系统默认列表文件79个字符宽度,66行长度。第35页/共77页6 6ExtrasExtras选项卡在Via file name编辑栏中可直接填写相应的via文件。该选项等同于命令行方式下的-via filename选项。7 7未列举在图形方式下的其他重要选项 -errors errorfile:错误列表文件选项。-o filena
27、me:目标文件名选项。第36页/共77页1.3 ARM1.3 ARM编译器armccarmcc的设置armcc编译器设置 第37页/共77页1 1Target and SourceTarget and Source选项卡n Architetore or Process 选项:设置目标CPU类型n Source Language 选项:语言类别。n Byte Order选项:选择大端小端;n Floating Point选项:选择fpu的体系结构2 2ATPCSATPCS选项卡 ATPCS(ARM and Thumb Procedure Call Standard)是ARM和Thumb指令程序互
28、相调用的标准。n ARM/Thumb interworking:ARM代码和Thumb代码代码混合使用选项;n Software stack check:软件数据栈检查选项;n Read-only position indepen:只读位置选项;n Read-write position indeper:可读可写位置选项。第38页/共77页3 3WarningsWarnings选项卡No warnings:指定编译器关闭所有的报警信息;Warn for all condition:指定编译器打开所有的报警信息;4 4ErrorsErrors选项卡 Errors选项卡如图,选用这些选项会忽略一些
29、错误信息,这意味着这样编译的源程序不严格遵循 C或 C+标准。第39页/共77页5 5Debug/OptionDebug/Option选项卡 Debug ControlEnable debug table generation:此选项在编译输出的文件中会包含调换的信息表;Include preprocessor symbol:此选项对于宏定义较多的源文件;Enable debug of inline function:此选项不使用函数的内嵌功能。Optimization LevelMinimum:这是最低级别的优化;Most:这个级别的优化是不完全优化;All:这是一个对输出对代码完全优化的级
30、别。Optimization CriterionFor space:此选项优化目标代码的尺寸,而牺牲代码的执行性能;For time:此选项优化目标代码的执行时间,而牺牲代码的存储空间。第40页/共77页7 7Code GenCode Gen选项卡6 6PreprocessorPreprocessor选项卡 此选项卡指定了预处理器的特性,包括预处理器的输出和宏定义。8 8ExtrasExtras选项卡在这个选项卡中可以设置一个Via格式的配置文件,这样各种选项就可以从Via配置文件输入,避免所有选项一一设置带来的麻烦。第41页/共77页9 9未列举在图形方式下的其他重要选项 output -f
31、ormat 该选项设置编译输出文件的格式,可以使用这个选项产生汇编语言的列表文件和生成目标文件。-asm 该选项指定编译器生成一个汇编语言的列表文件。-C 该选项指定编译器只进行编译但不准备链接。-S 该选项指定把编译器生成的汇编指令包含到列表文件中,但与-asm选项不同,该选项不能产生目标代码。-list 该选项指定编译器生成一个列表文件,列表文件包含源程序行、错误信息和警告信息。文件的内容可以使用选项-fi、-fj和-fu控制。-O filename 该选项指定一个文件,这个文件用来存放编译输出的结果。search Paths该选项设置包含文件的搜索路径。additional check附
32、加核查选项。第42页/共77页四、程序的链接 1.1 与链接相关的文件对程序进行链接时,会涉及到以下一些相关的文件:目标文件 Via文件 分散加载文件 映像文件 信息列表文件 错误信息列表文件 全局符号表文件 其中都是链接器的输入文件;都是链接器的输出文件;既可以是链接器的输入文件,也可以是链接器的输出文件。第43页/共77页1.2 ARM映像文件1 1ARMARM映像文件的组成 ARM映像文件的组成部分ARM映像文件是一个层次性结构的文件,其中包含了域(region)、输出段(output section)、输入段(input section)。映像文件组成结构示意图 输入段:输入段中包含了
33、4类内容:代码、已经初始化的数据、未经过初始化的存储区域、内容初始化成0的存储区域。输出段:一个输出段中包含了一系列的具有相同的RO、RW和ZI属性的输入段。域:一个域中包含l3个输出段,其中各输出段的属性各不相同。各输出段的排列顺序是由其属性决定的。第44页/共77页 ARM映像文件各组成部分的地址映射 ARM映像文件各组成部分在存储系统中的地址有两种:一种是在映像文件位于存储器中时的地址,称为加载时地址;一种是在映像文件运行时的地址,称为运行时地址。当映像文件中地址映射关系更复杂时,可以使用一个配置文件告诉链接器相关的地址映射关系。设置地址映射关系 第45页/共77页 2 2ARMARM映
34、像文件的入口点 两类入口点初始入口点(initial entry point);初始入口点是映像文件运行时的入口点,每个映像文件只有一个唯一的初始入口点,它保存在ELF头文件中。普通的入口点(entry point)。普通的入口点是在汇编程序中用ENTRY伪操作定义。定义初始入口点 初始入口点必须满足下面两个条件:n 初始入口点必须位于映像文件的运行时域内;n 包含初始入口点的运行时域不能被覆盖,它的加载时地址和运行时地址必须是相同的(这种域称为固定域root region)。第46页/共77页可以使用链接选项-entry address来指定映像文件的初始入口点,也可以在图形方式下设置初始入
35、口点地址 普通入口点的用法普通的入口点是在汇编程序中用ENTRY伪操作定义。在嵌入式应用系统中,各种异常中断(如IRQ、FIQ、SVC、Undef、Abort)的处理程序的入口使用普通入口点标识。第47页/共77页可以使用链接选项-first、-last来改变输入段排序顺序规则:n 输入段的属性n 输入段的名称n 各输入段在链接命令行的输入段列表中的排列顺序。3 3输入段的排序规则各输入段的起始地址由两个因素决定:n 输出段起始地址n 输入段在输出段中的排列顺序。第48页/共77页1.3 ARM1.3 ARM链接器生成的符号1 1链接器生成的与域相关的符号符号名称含 义Load$region_
36、name$Base域region_name的加载时起始地址。Image$region_name$Base域region_name的运行时起始地址。Image$region_name$Length域region_name运行时的长度(为4字节的倍数)。Image$region_name$Limit域region_name运行时存储区域末尾的下一个字节地址(该地址不属于域region_name所占的存储区域)。对于只读的域,使用名称ER RO;对于可读写的域,使用名称ER RW;对于使用0初始化的域,使用名称ER ZI。第49页/共77页链接器为ZI输出段生成另外的符号符号名称含 义Image$r
37、egion_name$ZI$Base域region_name中ZI输出段的运行时起始地址。Image$region_name$ZI$Length域region_name中ZI输出段运行时的长度。Image$region_name$ZI$Limit 域region_name中ZI输出段运行时存储区域末尾的下一个字节地址。第50页/共77页2 2链接器生成的与输出段相关的符号符号名称含 义Image$RO$BaseRO输出段运行时起始地址。Image$RO$LimitRO输出段运行时存储区域界限。Image$RW$BaseRW输出段运行时起始地址。Image$RW$LimitRW输出段运行时存储区
38、域界限。Image$ZI$BaseZI输出段运行时起始地址。Image$ZI$LimitZI输出段运行时存储区域界限。3 3链接器生成的与输入段相关的符号符号名称含 义SectionName$BaseSectionName 输入段运行时起始地址。SectionName$LimitSectionName输入段运行时存储区域界限。第51页/共77页1.4 链接器armlink的设置 ARM Linker设置对话框 第52页/共77页1 1OutputOutput选项卡 PartialPartial 该选项指示链接器对目标文件进行部分链接,部分链接生成扩展名为O的ELF格式的目标文件,这个链接是为了
39、以后链接使用,不生成可执行的映像文件。SimpleSimple 该选项指示链接器对目标文件进行简单链接,链接生成可执行映像文件。ScatterScatter 该选项引入一个配置文件。这个配置文件是一个文本文件,由程序员编制而成。Symbol Symbol 使用该选项可以生成一个全局符号列表文件,这个文件包含的符号是映像文件中所使用的全局符号。Symbol editingSymbol editing 使用该选项可以指定一个 steering格式的文件。第53页/共77页2 2OptionOption选项卡 Remove unused sections Remove unused sections
40、Read-only Read-only:删除RORO类型的未被使用的段;Read-write Read-write:删除RWRW类型的未被使用的段;Zero-initial Zero-initial:删除ZIZI类型的未被使用的段;Image entry pointImage entry point 设置映像文件入口点。其他选项第54页/共77页3 3LayoutLayout选项卡 Place at beginning of image Place at beginning of image选项组用于指定将某个输入段放置在它所在的运行时域的起始位置。在Object/Symbol文本框中指定一个
41、符号名称,定义本符号的输入段被指定。在Object/Symbol文本框中指定一个目标文件名称,在Section文本框中指定一个输入段名称,从而确定了一个输入段作为指定的输入段。Place at end of imagePlace at end of image选项组用于指定将某个输入段放置在它所在的执行时域的结尾,指定一个输入段的2种方法与Place at beginning of 选项组相同。第55页/共77页4 4ListingsListings选项卡第56页/共77页 Listings选项组 Image map:此选项使链接器产生一个关于映像文件的信息图;Symbols:此选项使链接器列
42、出链接过程中的局部和全局符号及其数值,半空链接器产生的符号;Mangled C+:此选项使链接器在诊断信息和链接选项-xref、-xreffrom、-xrefto、-symbol产生的列表中显示mangled的C+符号名称;Section cross-reference:此选项使链接器列出所有输入段间的交叉引用;List file:此选项用于指定列表文件的名称及其路径;Static callgraph:选中该选项链接器显示程序间调用关系。Give Information on 选项组Sizes:此选项使链接器列出映像文件中各输入目标文件和使用到的库文件的尺寸;Totals:此选项使链接器列出映
43、像文件中所有输入目标文件和使用到的库文件的尺寸总和;Unused:此选项使链接器列出被删除的没有被使用的输入段信息;Veneers:此选项使链接器列出生成的veneers的信息。第57页/共77页5 5ExtrasExtras选项卡 Make undefined symbols refer to 在该文本框中输入一个已经定义的全局符号,用来代替映像文件中所有未定义的符号。Via file name 在该文本框中选择一个via格式的文件。Via格式的文件中包含了ARM链接器各命令行的选项,ARM链接器可以从该为文件中读取相应的链接器命令行选项。第58页/共77页五、本节附录1.1 1.1 配置生
44、成目标1 1)工程项目的生成目标根据选择,链接器生成的映像文件可以有3种不同的特性,称为3种生成目标如图。DebugRel 在生成输出文件时,会生成必要的调试信息;Release 在生成输出文件时,将不包含调试信息;Debug 在生成输出文件时,会生成完全的调试信息。第59页/共77页2 2)SettingsSettings对话框打开Debug Settings对话框的操作步骤如下:打开一个工程项目;在工程项目窗口中选择Debug生成目标;通过下面的任何一个操作弹出Debug Settings对话框;在工程项目窗口中单击Target Settings 按钮;选择“Edit”“Debug Set
45、tings”命令;在Debug Settings对话框中包括下面6个面板,其步骤如下:Target Settings 生成目标基本选项设置;Language Settings 编程语言选项设置;Linker 链接器选项设置;Editor 编辑器选项设置面板;Debugger 调试器选项设置面板;Miscellaneous Settings 其他选项设置面板。第60页/共77页生成目标基本选项用于设置当前生成目标的一些基本信息,包括生成目标的名称、所使用的链接器等。它包括下面几组选项。下面分别介绍其含义与设置方法:Target Settings 选项组;Access Paths选项组;Build
46、 Extras选项组;File Mappings选项组;Source Trees 选项组。第61页/共77页 设置Target SettingsTarget Settings选项组3 3)设置生成目标的基本选项第62页/共77页 Target Name设置当前生成目标的名称 Linker选择使用的链接器。ARM Linker 选择armlink工具编译和链接文件;ARM Librarian 选择librarian工具,将文件转会成ARM库文件;None 不使用任何链接器。Pre-LinkerCodeWarrior IDE for ARM当前没有使用本选项 Post-Linker用于选择对链接器
47、输出的文件的处理方式,可能的取值如下:None不进行链接后的处理;ARM fromELF使用fromELF工具处理链接器输出的ELF格式的文件,Output Directory用于定义本工程项目的数据目录。第63页/共77页 设置Access Paths选项组 User Paths 单选按钮,用于指定用户路径。System Paths 单选按钮,用于指定系统路径。Always Search User Paths 复选框,用于指定在用户路径中搜索系统头文件。其他按钮第64页/共77页 设置Build Extras选项组这些选项用于设置是否检查源文件修改日期、是否缓存子工程项目、是否使用第三方调试
48、器等等。第65页/共77页 设置File Mappings选项File Mappings选项组的默认取值取决于下面两个条件:n 当前工程项目所使用的工程项目模板类型;n 当前的生成目标。第66页/共77页 设置Source Trees选项组Name 文本框中为当前选中路径的名称;Type 下拉列表框可以选择当前选中的路径的类型;Choose 使用本按钮可以选择实际的路径;Add按钮用于添加一条新的路径选项;Change 按钮用于修改当前路径选项;Remove 按钮用于删除当前路径选项。第67页/共77页1)Scatter文件结构scatter文件中可以指定下列信息:a.各个加载时域的加载时起始
49、地址、最大尺寸和属性;b.每个加载时域包含的输出段;c.各个输出段的运行时起始地址、最大尺寸、存储访问特性和属性;d.各个输出段中包含的输入段。1.2 Scatter1.2 Scatter文件编写Scatter文件结构示意图 第68页/共77页 加载时域的描述加载时域的格式如下所示:输出段的描述输出段的格式如下所示:输入段的描述 输入段里描述了一个文本字符串的模式,匹配该模式的输入段都将被包含在当前域中。模式中可以使用匹配符,符号*代表零个或者多个字符,符号?代表单个字符。进行匹配时,所有字符是大小写无关的。Load_namebase_designator attribute max_size
50、output_namebase_designator attributemax_size第69页/共77页简单的scatter文件Load_10 x4000;定义加载时域的名称为Load_1,起始地址为0 x4000 ER_RO+0;输出段名ER_RO,地址偏移量0,所以起始地址为0 x4000 *(+RO);通配符*,包含了所有的RO属性的输入段,它们被连续放置 ER_RW+0;输出段名称ER_RW,起始地址为前一个输出段的结束地址加偏移量0*(+RW);本输出段包含所有的RW属性的输入段,它们被连续放置ER_ZI 0 x5000;输出段名称ER_ZI,起始地址为0 x5000*(+ZI);