ARMADS集成开发环境概述课件.ppt

上传人:牧羊曲112 文档编号:3725625 上传时间:2023-03-17 格式:PPT 页数:81 大小:2.50MB
返回 下载 相关 举报
ARMADS集成开发环境概述课件.ppt_第1页
第1页 / 共81页
ARMADS集成开发环境概述课件.ppt_第2页
第2页 / 共81页
ARMADS集成开发环境概述课件.ppt_第3页
第3页 / 共81页
ARMADS集成开发环境概述课件.ppt_第4页
第4页 / 共81页
ARMADS集成开发环境概述课件.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《ARMADS集成开发环境概述课件.ppt》由会员分享,可在线阅读,更多相关《ARMADS集成开发环境概述课件.ppt(81页珍藏版)》请在三一办公上搜索。

1、第6章ARMADS集成开发环境,6.1ADS1.2的安装6.2ADS概述6.3ADS集成开发环境的使用6.4用AXD进行代码调试,6.1 ADS1.2的安装,ADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0,该版本支持包括Windows和Linux在内的多种操作系统。安装步骤如下:1.在ADS1.2的安装盘中运行setup.exe即可安装ARM Developer Suite v1.2。2.ADS1.2的注册 ADS1.2的注册可在安装的过程中注册,也可在ADS1.2安装完后,

2、再运行注册向导进行注册。下面简述利用注册向导进行注册的步骤:点击“开始程序ARM Developer Suite v1.2License Installation Wizard”后,弹出图6.1所示对话框。,点击“下一步”,会出现图6.2所示的对话框。,选默认的“Install License”,再点击“下一步”,会出现图6.3所示的对话框。在图6.3中的注册码Code输入框和注册文件Location输入框中两者只能输入一个,输入,正确后,点击“下一步”即可完成ADS1.2的安装。注册文件为:Program FilesARMADSV1_2licenseslicense.dat或在ADS1.2安

3、装盘的ads1.2CRACKlicense.dat。,6.2 ADS 概述,ADS1.2组成如下:1编译器,ADS提供多种编译器,以支持ARM和Thumb指令的编译。armcc是ARM C编译器;tcc是Thumb C编译器;armcpp是ARM C+编译器;tcpp是Thumb C+编译器;armasm是ARM和Thumb的汇编器。2链接器armlink是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。,3符号调试器armsd是ARM和Thumb的符号调试器。它能够进行

4、源码级的程序调试。用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。4fromELF将ELF格式的文件转换为各种格式的输出文件,包括BIN格式映像文件、Motorola 32位S格式映像文件、Intel 32位格式映像文件和Verilog 16进制文件。FromELF命令也能够为输入映像文件产生文本信息,例如,代码和数据长度。6.armararmar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文件。,6CodeWarriorCodeWarrior集成开发环境(IDE)为管理和开

5、发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C、C+或者ARM汇编语言编写的程序代码。7调试器(1)ADS中包含有3个调试器:AXD、Armsd和ADW/ADU。(2)在ARM体系中,可以选择多种调试方式:Multi-ICE(Multi-processor in-circuit emulator)、ARMulator或Angel。Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,不是由ADS提供的。ARMulator是一个ARM指令集仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令

6、集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下,开发程序代码,利用模拟器方式调试。Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS-232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。,8C和C+库ADS提供ANSI C库函数和C+库函数,支持被编译的C和C+代码。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。这就为用户带来了极大的方便,针对自己的应用程序的要求,对与目标无关的库函数进行适当的裁剪。在C库中有很多函数是独立于其他函数的,并且与目标硬件没有任何依赖关系。对于这

7、类函数,用户可以很容易地从汇编代码中使用。有了这些部件,用户可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。,6.3 ADS集成开发环境的使用,6.3.1 建立一个新工程1建立工程运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。选择File New菜单,在对话框中选择Project,如图6.4所示,新建一个工程文件。,在图 6.4新建工程对话框中打开Project选项,列出了下面可供选择的工程项目模板:ARM Executable Image 用于由ARM指令的代码生成一个可执行的ELF格式的映像文件。是常选项。ARM

8、Object Library用于由ARM指令的代码生成一个armar格式的目标文件库。Empty Project 用于生成一个不包含任何源文件和库文件的空的工程项目。Makefile Importer Wizard 用于将一个Visual C 的 nmake 文件转换成 CodeWarrior的工程项目文件。Thumb ARM Interworking Image 用于由 ARM 指令和Thumb 指令的混合代码生成一个可执行的ELF格式的映像文件。Thumb Executable Image 用于由Thumb指令的代码生成一个可执行的ELF格式的映像文件。Thumb Object Libra

9、ry 用于由Thumb指令的代码生成一个armar 格式的目标库文件。,选中 CreatFolder 选项后将以图6.4中的 ProjectName 或图6.5 中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。在输入了工程名和选择了工程路经后,单击“确定”,就生成一个新的工程项目。,2新建一个源文件采用下面两种方法建立一个新的源文件。方法1:点击工具栏的“New Text File图标”即可产生一个新的、没有标题的编辑窗口,可在编辑窗口中输入编辑源代码,代码输入编辑完后保存文件。方法2:选择FileNew菜单,在对话框中选择File,如图6.6所示新建文

10、件对话框。在进入6.6所示新建文件对话框后,可按如下步骤操作。(1)在File Name文件框中输入新建的文件的名称。(2)在Location文件框图中输入将要建立的文件的路经,也可单击Set按钮,从弹出的标准文件对话框Open中选择将要建立的文件的路经。(3)双击图6.6中左边文件类型“Text File”即可进入源程序代码的编辑窗口,可在编辑窗口中输入编辑源代码,代码输入编辑完后保存文件。若要将新建文件加入当前工程项目中,选中Add to Project复选框,在Project下拉列表框中选择所需加入的工程项目的名称。在Target列表框中选择新建立的文件加入的生成目标。,6.3.2 配置

11、生成目标1配置生成目标(Target Settings)在ADS中通过Debug Setting 对话框来设置一个工程项目中的各生成目标的生成选取项。在Target Setting 窗口中设置的各生成选项只适应于当前的生成目标。ARM提供的可执行的映像文件的模板包括了下面3个生成目标。Debug 生成的目标映像文件中包含了所有的调试信息,用于开发过程中使用。Release 生成的目标映像文件中不包含调试信息,用于生成实际发行的软件版本。DebugRel 生成的目标映像文件中包含了基本的调试信息。若对程序代码进行调试时,必须选择Debug生成目标。有两种方法打开Debug Settings 对话

12、框:在工程项目窗口中单击Target Setting按钮。选择Edit|Debug Settings 命令。,在Debug Settings 对话框中包括下面 6个面板,用户可以选择某个面板设置相关的生成选项。所选的选项用于工程项目中当前生成目标。生成目标基本选项设置(Target Settings)面板,用于设置当前生成目标的一些基本信息,如:生成的目标名称、所使用的连接器等。编程语言选项设置(Language Settings)面板,用于设置ADS中各语言处理工具的选项,包括汇编器的选项和编译器的选项,这些选项对于工程项目中的所有的源程序都使用,不能单独设置某一个源文件的编译选项和汇编选项

13、。连接器选项设置(Linker)面板,用于设置与连接器相关的选项以及与fromELF工具相关的选项。编辑器选项设置(Editor)面板,用于设置用户个性化的关键词显示方式。调试器选项设置(Debugger)面板,用于设置系统中选用的调试器及相关的配置选项。其他选项设置(Miscellaneous Setting)面板,用于设置杂类的选项。,下面对Debug Settings 对话框中包括下面 6个面板作详细介绍。,(1)设置Target Settings选项组在Debug Settings 对话框中选择Target Settings 项,如图6.7 所示。Target Name 文本框用于设置

14、当前生成目标的名称.Linker下拉列表框用于选择所使用的连接器,可能的取值如下:ARM Linker 选ARM连接器armlinkt 连接编译器和汇编器生成的目标文件。ARM Librarian 选ARM的librarian工具,将编译器和汇编器生成的文件转化为ARM库文件。None 不使用任何连接器,编译器和汇编器不对工程项目中的文件处理。Pre-Linker CodeWarrior IDE for ARM 当前没有使用本选项。Post-Linker 用于选择对连接器输出文件的处理方式,可能的取值如下:None 不进行连接后的处理。ARM fromELF 使用ARM工具fromELF处理连

15、接器输出的ELF格式的文件,它可以将 ELF格式的文件转换成各种二进制文件格式。FTP Post-Linker CodeWarrior IDE for ARM 当前没有使用本选项。Batch File Runner 在连接完成后运行一个DOS 格式的批处理文件。,Output Directory 用于定义本工程项目的数据目录。工程项目的生成文件存放在该目录中。默认的取值为Project,用户可以单击 Choose 按钮修改该数据目录。单击 Save 按钮保存本组选项的设置。注:通常的目标设置如图 6.7 所示。(2)设置Access Paths选项组Access Paths选项组中的选项如图6

16、.8 所示。,User Paths 单选项按钮用于指定用户路经,其默认值为Project,是当前工程项目所在的路经。ADS 中各种工具在用户路经中搜索以下内容:用户头文件 使用include“”的格式来引用。用户库文件也就是用户头文件对应的库文件。用户的源文件 当用户将某个目录中的源文件添加到工程项目中时,该目录将自动被CodeWarrior IDE 添加到User Paths中。System Paths 单选项按钮用于指定系统路经,其默认值为compilerlib 及compilerinclude,其中compiler默认为c:program filesARMADSV1_2。Always S

17、earch User Paths 复选项框用于指定在用户路经中搜索系统文件。无论是在单选栏中单击User Paths 单选项按钮还是选System Paths 单选项按钮,都会在列表框中显示对应的用户路经/系统路经,其中包括了 3 栏,各栏的含义如下:,第 1 栏为搜索栏,当该栏有一个符号“”时,本行对应的第 3 栏路经将会被搜索;否则不会被搜索。可用鼠标点击该位置,使其在两种状态之间进行切换。第 2 栏为递归搜索栏,当该栏有一个文件夹符号时,本行对应的第 3 栏中的路经及其子路经将会被搜索;否则只会被第 3 栏中的路经,而不搜索其子路经。可用鼠标点击该位置,使其在两种状态之间进行切换。Add

18、 Default 用于将默认的路经添加到路经列表框中。Add 用于向路经列表框中添加路经。Change 用于修改路经列表框中的路经。Remove用于删除路经列表框中的路经。,(3)设置Build Extras 选项组Build Extras选项组中的选项如图6.9 所示。Use modification date caching 复选框:选中,对在CodeWarrior IDE 之外被修改的源文件不进行修改日期的检查。当使用第三方的编辑器或处于多用户环境时,不能选中此复选框。默认值为选中。Cache subprojects 复选框:选中,可提高多工程项目时的更新和连接速度;不选可节省CodeW

19、arrior IDE 所需的存储空间。默认值为选中。Activate Browse 复选框:选中,可产生CodeWarrior IDE 所需的浏览器信息。这些浏览器信息是在下一次生成工程时产生的。若这时选中复选框 internal browse information after compile 复选框,则可以显示CodeWarrior IDE 中编译器和连接器产生的浏览器信息。默认值为不选中。Use third party debugger复选框:选中,可使用第三方的调试器。默认值为不选中。Build Extras选项组中的选项通常使用默认值。,(4)设置File Mappings 选项组

20、File Mappings选项组中的选项如图6.10 所示。这些选项用于指定特定的文件扩展名称所对应的CodeWarrior IDE中的内嵌的工具。通常,这些选项的默认值取决下面两个条件:当前工程项目所使用的工程项目模板类型。当前的生成目标。,File Mappings选项组中的各选项的含义及设置方法如下:File Mappings列表中列出了各类扩展名与其对应的内嵌处理工具。每一行有 7栏,可以通过列表下面的文本框和下拉列表框来改变当前行中各栏的值。各栏的含义如下:第 1 栏(File Type)为文件的类型,可通过 File 文本框设置当前行的本栏值。第 2 栏(Extension)为文件

21、的扩展名,可通过Extension 文本框设置当前行的本栏值。第 3 栏(Resource)为资源文件标识符,在CodeWarrior IDE for ARM 中 File Mappings没有使用这一栏。可以从Flags下拉列表框中选择/取消当前行中本栏选项。第 4 栏(Launchable)表示本类文件是否可以加载。如果本栏被选择,当用户使用鼠标双击该类文件时,该文件将被本行所指定的CodeWarrior IDE 中的内嵌工具打开。可以从Flags下拉列表框中选择/取消当前行中本栏选项。第 5 栏(Precompiled)表示本类文件首先被CodeWarrior IDE 中内嵌工具处理。得

22、到的结果可能被其他文件或者编译器使用。可从Flags下拉列表框中选择/取消当前行中本栏选项。第 6 栏(Ignored by Make)表示CodeWarrior IDE 在编译器/连接工程项目时忽略该类文件。可以从Flags下拉列表框中选择/取消当前行中本栏选项。第 7 栏(Comoiler)表示本类文件对应的CodeWarrior IDE 中的内嵌工具。可通过 Comoiler 文本框设置当前行的本栏值。Add 用于向File Mappings列表中添加选项。Change 用于修改File Mappings列表中的选项。Remove 用于删除File Mappings列表中的选项。,(5)

23、设置Source Trees 选项组 Source Trees 选项组中的选项如图6.11 所示。其中定义的路经名称可以被Access Paths等选项组的选项使用。各选项含义及设置方法如下。Source Trees 列表框中列出了各路经信息,它包括两栏:第一栏为路经的名称;第二栏为该名称对应的实际路经。Source Tree info 选项组中的选项可以用来定义、添加、修改、删除各路经。其中:Name 文本框中为当前选中路经的名称;Type 下拉列表框可以选择当前选中路经的类型;Choose 使用本按钮可以选择实际的路经;Add 按钮用于添加一条新的路经选项;Change 按钮用于修改当前的

24、路经选项;Remove 按钮用于删除当前的路经选项。,2编程语言选项设置(Language Settings)编程语言选项设置(Language Settings)包括汇编器选项设置和编译器选项设置,即:ARM Assembler、ARM C Compiler、ARM C+Compiler、Thumb C Compiler、Thumb C+Compiler的设置。下面主要介绍ARM Assembler、ARM C Compiler的设置,其他设置大致相同。(1)汇编器选项设置(ARM Assembler)在Debug Settings 对话框中的 Target Settings Panels

25、列表中选 Language Settings下的 ARM Assembler 项,出现如图6.12 所示的编程语言选项设置对话框。该对话框中右边是ARM Assembler选项组的选项,包括 6 个选项卡,分别是Target、ATPCS、Options、Predefines、Listing、Control和Extras选项卡。,Target选项卡图6.12中各选项的含义及使用方法如下:Architecture or Processor 下拉列表框用于选择目标系统中的ARM体系结构版本号或处理器编号。Floating Point下拉列表框用于选择系统中的浮点体系结构,设置本选项后将会使得特定的C

26、PU型号所隐含的浮点部件的体系结构失效。有以下 7种可能的取值:FPA Formats and Instructions 选择使用浮点加速器(FPA)。VFPv1 Formats and Instructions 系统中包含硬件的向量浮点运算部件,如:ARM 10v0,该部件符合vfpv1 标准。VFPv2 Formats and Instructions系统中包含硬件的向量浮点运算部件,如:ARM 10v0,该部件符合vfpv2 标准。,Old-style Mixed-Endian softfp 使用软件的浮点运算库,该浮点运算库支持混合的内存模式,即可同时包含大端和小端模式(big-end

27、ian和little-endian)。Pure-Endian softfp 使用软件的浮点运算库,该浮点运算库支持单一的内存模式,即单一的大端(big-endian)或小端模式(little-endian)。VFP with softfp calling standard 使用本选项即可支持软件的浮点运算库,也支持到硬件VFP的连接。这适合在系统中 Thumb 存在指令,同时包含硬件VFP的场合。No floating point 不支持浮点运算指令。Byte Order 选项用于选择大端(big-endian)或小端模式(little-endian)内存模式。Initial State 选项

28、用于设置当运行用户程序时,系统的状态是ARM状态还是Thumb 状态。设置该选项并不能切换系统状态,程序中必须包含进行程序状态切换的代码。,ATPCS 选项卡 Call Standard 选项组中的单选按钮选中时表示指定汇编程序代码遵守一定的ATPCS标准。否则为不遵守一定的ATPCS标准。被C/C+程序调用的汇编程序,都需要遵守一定的ATPCS标准。Predeclared Register Names 选项组中单选按钮被选中时表示指定汇编器认识ATPCS中预定义的寄存器的名称。否则,汇编器不认识ATPCS中预定义的寄存器名称。ARM/Thumb interwork 复选框,选中为ARM 指令

29、和Thumb 指令混合使用。Read-only position independent 复选框,选中,则指定源程序是ROPI(只读位置无关)。ARM汇编器的默认是此复选框不勾选中。Read-write position independent 复选框,选中,则指定源程序是RWPI(读写位置无关)。ARM汇编器的默认是此复选框不勾选中。Solfware stack 有下面 3个单选按钮:On 指定源程序进行软件数据堆栈限制检查。Off 指定源程序不进行软件数据堆栈限制检查。Not Applicable 指定源程序既与进行软件数据堆栈限制检查的程序兼容,也与不进行软件数据堆栈限制检查的程序兼容。

30、,图6.13 ATPCS 选项卡选项,Options 选项卡,Check Register Lists 选中该复选框,则ARM汇编器检查指令RLIST、LDM、STM中的寄存器列表,保证寄存器列表中的寄存器是按照寄存器编号由小到大的顺序排列的,否则将产生警告信息。No Warnings 选中该复选框,则ARM汇编器不产生警告信息。Source Line Debug 选中该复选框,则ARM汇编器产生DRAWF2格式的调试信息表。该复选框选中后会自动选中Keep Symbols 选项。Keep Symbols 选中该复选框,则ARM汇编器将局部符号保留在目标文件的符号表中,供调试器进行调试时使用。

31、Ignore C-style escape characters 选中该复选框,则ARM汇编器忽略C风格的转义字符,如“n”等。Fault long running Load and Store Multiples 选中该复选框,则如果指令LDM/STM中的寄存器个数超标,ARM汇编器将认为该指令错误。,Predefines 选项卡,Edit predefined variable 选项组用于定义一个全局变量,并可设置其值。在variable 文本框中输入全局变量的名称;在Directive下拉列表框中可选择为该变量赋值的伪操作;在Numeric文本框中设置全局变量的值。在完成上面的操作后,可

32、以单击Add 按钮将该变量加入到工程项目中。List of Predefines 下拉列表框图中可以选择已经定义的全局变量,可点击Replace按钮,Edit predefined variable文本框图中的选项取代List of Predefines 下拉列表框图中对应的全局变量;点击Delete按钮,可以删除List of Predefines 下拉列表框图中所选的全局变量。,Listing Control 选项卡,Listing on 选中该复选框,则ARM汇编器将其产生的汇编程序列表输出到一个新的文本编辑窗口中。Terse 选中该复选框,源程序中由于条件汇编被排除的代码将不包含在输出

33、列表中,当不选中该复选框时,源程序中由于条件汇编被排除的代码将包含在输出列表中。Cross-references 选中该复选框,则ARM汇编器在输出列表中包含符号的交叉引用信息,比如符号在何处定义,在哪些地方被引用。Dimensions 在选中Listing on复选框时有效。它定义了输出列表中每页的长度和宽度,其中上面的文本框定义页面宽度,下面的文本框定义页面长度。当选中Continuous Page复选框时,输出列表不分页。,(2)编译器选项卡设置(ARM C Compiler)下面介绍CodeWarrior IDE 中内嵌的编译器的选项设置。在Debug Settings 对话框中的 T

34、arget Settings Panels 列表中选 Language Settings下的 ARM C Compiler 项,出现如图6.17 所示的包含ARM C Compiler 选项的对话框。ARM C Compiler选项组包括8个选项卡,分别是Target and Source、ATPCS、Warnings、Errors、Debug and Optimization、Preprocessor、Code Generation 和Extras选项卡。,Target and Source 选项卡,Architecture or Processor 下拉列表框用于选择目标系统中的ARM体系

35、结构版本号或处理器编号。Floating Point下拉列表框用于选择系统中的浮点体系结构,设置本选项后将会使得特定的CPU型号所隐含的浮点部件的体系结构失效。有以下 7 种可能的取值.Byte Order 用于选择大端(big-endian)还是小端模式(little-endian)内存模式。Source Language 选项组中的下拉列表框用于确定源文件的类型。通常选择ANSI/ISO Standard C。,ATPCS 选项卡,ARM/Thumb interwork 复选框,选中为ARM 指令和Thumb 指令混合使用。Read-only position independent 复选

36、框,选中,则指定源程序是ROPI(只读位置无关)。ARM汇编器的默认是此复选框不勾选中。Read-write position independent 复选框,选中,则指定源程序是RWPI(读写位置无关)。ARM汇编器的默认是此复选框不勾选中。Software stack 选中该复选框,源程序进行数据堆栈限制检查。,Warnings 选项卡,No Warnings 选中该复选框,编译器不产生警告信息。Warn for all conditions 选中该复选框,编译器可以显示所有的警告信息,包括那些默认情况下被关闭的警告信息。Warn for(C and C+)选项组列出了对C 编译器和C+编

37、译器都适应的警告信息控制选项。Warn for(C+Only)选项组列出了对C+编译器有效的警告信息控制选项。Warnnngs 选项卡通常取默认值。,Errors 选项卡,Errors 选项卡图6.20所示,各选项的含义及使用方法如下:Implicit point cast 选中该复选框,隐式的数据类型转换而将产生错误信息。Other dubious cast 若该复选框不选中,那些由于非法数据类型转换而引起的错误类型将被降级处理为警告信息。Junk at end of#endif#else#undef 如果该复选框不选中,将关闭由于在预处理行有多余字符而产生的错误信息。Zero-length

38、 arrays 如果不选中该复选框,将关闭由于数组大小为 0 而产生的错误信息。Linkage conflicts 若先将一个函数声明成 extern 类型的,然后又将其声明成static 类型,在连接时会产生错误信息。如果不选中该复选框,将关闭这种错误信息。下面这些选项适用于C+编译器。Access control violations 如果不选中该复选框,将由于访问控制错误而引起的错误类型将被降级为警告处理。Implicit int types 在C+语言中,隐式地使用 int 数据类型时将产生错误信息。选中该复选框,将该错误信息转换成为警告信息。Errors 选项卡通常取默认值。ARM

39、C Compiler选项组的其他4个选项卡,即:Debug and Optimization、Preprocessor、Code Generation 和Extras选项卡各选项的设置通常取默认值,不需要进行设置。,3连接器选项设置(Linker),(1)Output选项卡Output选项卡用来控制连接器进行连接操作的类型。ARM 连接器有 3 种类型的连接操作,分别是:Partial 选择该单选框按钮时,连接器执行部分连接操作。部分连接生成 ELF格式的目标文件。为这些目标文件可以在作为进行进一步连接时的输入文件,也可以作为armar工具的输入文件。Simple 选择该单选框按钮时,连接器根

40、据连接器选项中指定的地址映射方式,生成简单的 ELF 格式的映像文件。这时,所生成的映像文件中地址映射关系比较简单,如果地址映射关系比较复杂需要使用下一种连接方式。Scattered 选择该单选框按钮时,连接器根据 scatter格式的文件指定的地址映射方式,生成地址映射关系比较复杂 ELF 格式的映像文件。下面分别介绍 Simple 连接类型和Scattered连接类型。,Output 选项卡的Simple连接类型对应的选项,选项卡的Simple image框中设置连接的Read-Only(只读)和Read-Write(读写)地址。RO Base 文本框用于设置映像文件中 RO 属性输出段的

41、加载时地址和运行时地址。地址必须是字对齐的。如果没有指定地址值,则使用默认的地址值0 x8000。图6.21中的地址0 x30008000是开发板上SDRAM 的真实地址,是由系统的硬件决定的。RW Base 文本框映像文件中包含 RW 属性和 ZI 属性的输出段运行时域的起始地址。地址必须是字对齐的。在图6.21中,此文本框的地址0 x30200000 指的是系统可读写的内存地址。也就是说,在0 x300080000 x30200000 之间是只读区域,存放程序的代码段,在0 x30200000 开始是程序的数据段。,Ropi 选中该复选框,映像文件中 RO 属性的加载时域和运行时域是位置无

42、关的(PI Position Independent)。如果没有选中该复选框,相应的域被标记为绝对的。如果选中该复选框,ARM 连接器将保证下面的操作:*检查各段之间的重定位关系,保证其是合法的。*保证ARM 连接器自身生成的代码(veneers)是只读位置无关的。Rwpi 选中该复选框,映像文件中包含 RW 属性和 ZI 属性的输出段的加载时域和运行时域是位置无关的。如果没有选中该复选框,相应的域被标记为绝对的。如果选中该复选框,ARM 连接器将保证下面的操作:*检查并确保各 RW 属性的运行时域包含的各输入段设定了 PI 属性。*检查各段之间的重定位关系,保证其是合法的。*在Region$

43、Table 和 ZISection$Table 中添加基于静态寄存器 sb 的选项。通常可写属性的输入段应该是读写位置无关的。,Split 选中该复选框,将包含所有的 RW 属性和 RO 属性的输出段的加载时域(load region)分割成两个加载时域。其中:*一个加载时域包含所有的 RO 属性的输出段。其默认的加载时地址为0 x8000,可以使用连接选项 ro-base address 来更改其加载时地址。*另一个加载时域包含所有的 RW 属性的输出段。该加载时域需要使用连接选项 rw-base address 来指定其加载时地址。如果没有使用选项rw-base address 来指定其加

44、载时地址,默认的使用了ro-base 0。Symbol 文本框用于指定一个符号定义文件(symdefs)的名称。符号定义文件是一个文本文件,其使用方法和使用普通的目标文件相同,将其作为ARM连接器的输入文件。,Output 选项卡的Scattered连接类型对应的选项,Scatter 文本框用于指定 ARM 连接器使用的 Scatter 格式的配置文件的名称。该配置文件是一个文本文件,用于指定映像文件地址映射方式,其中包含了各域及各段的分组和定位信息。Symbol 文本框用于指定一个符号定义文件(symdefs)的名称。在Scatter 文本框中输入scatter 文件名scat_ram.sc

45、f;然后切换到Options 选项卡在Image Entry Point 框中输入0 x30008000。也可以在图2-6 的Command Line 框中直接输入-entry 0 x30008000-scatter scat_ram.scf 进行上述设置。提示:程序移植到ADS 后,程序最开始首先执行用汇编写的初始化代码包括中断向量和堆栈的初始化。在该段代码中使用IMPORT _main;注意main 前面是两个下划线B _main进行系统内部的标准C 函数初始化,然后调用用户在C 中定义的main()函数两个main 都是小写),并且在嵌入式应用中用户C 的main 函数中不能有参数(in

46、t main(void),(2)Layout选项卡,Place at beginning of 选项组用于指定将某个输入段放置在它所在的运行时域的开头。有下面两种方法来指定一个输入段:第 1 种方法是在Object/Symbol 文本框中指定一个符号名称。这时,定义本 符号的输入段被指定。第 2 种方法是在Object/Symbol 文本框中指定一个目标文件名称。在 Section 文本框种指定一个输段名称,从而确定了一个输入段作为指定的输入段。Place at end of image 选项组用于指定将某个输入段放置在它所在的运行时域的结尾。Layout 选项卡的具体设置是:在Layout

47、选项卡的Place at beginning of image 框中设置程序的入口模块。指定在生成的代码中,程序是从startup.s 开始运行的。Object 设为startup.o,section 设为init。,4FromELF 工具的选项设置,Output format 下拉列表框用于选择目标文件格式。其可能的取值如下:Executable AIF 可执行的AIF格式的映像文件。Non executable AIF 非可执行的AIF格式的映像文件。Plain binary BIN格式映像文件。Intellec Hex IHF 格式映像文件。Motorola 32 bit Hex Mot

48、orola 32位 S 格式映像文件。Intel 32 bit Hex Intel 32位 S 格式映像文件。Verilog HexVerilog 16位 S 格式映像文件。ELF 可执行的连接格式 Text information 文本信息,Output file name 文本框用于设置 fromELF 工具的输出文件的名称。Text format flags 在该选项组中,当输出文件为文本信息时,用于置控制文本信息内容的选项。Equivalent Command Line 文本框中列出了当前连接器选项设置的命令行格式。有一些连接器选项设置没有提供图形界面,需要使用命令行格式来设置。在图6

49、.24 中 Output file name 文本框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。以上的配置是按 Debug 生成目标进行配置的。,6.保存工程模板设置完成后,将工程文件名改为工程项目模板名,如:2410 ARM Executable.mcp。然后在ADS1.2 软件安装目录下的Stationery 目录下新建名为2410 ARM Executable Image 的模板目录,再将刚设置完的2410 ARM Executable.mcp工程模板文件存放到该目录下即可。这样以后在新建工程的时候就能在图6.4 所示的新建工程窗口中看到以2410A

50、RM Executable Image 为名字的模板了。提示:建议用户直接将开发商提供的工程项目模板拷贝到ADS1.2 软件安装目录下的Stationery 目录下的工程模板子目录下,如:将开发板配套光盘Template/ADS 下的2410 ARM Executable Image 子目录直接拷贝到ADS1.2 安装目录下的Stationery 目录中。如果用户原来已安装了 ARM SDT 软件的话,再安装 ADS1.2 后可能导致 ARM SDT不能正常使用,需要用户更改系统环境变量:ARMINC 设置为%ARMSDTPATH%INCLUDE,ARMLIB 设置为%ARMSDTPATH%L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号