ADS1.2开发工具的使用.ppt

上传人:牧羊曲112 文档编号:6501319 上传时间:2023-11-07 格式:PPT 页数:77 大小:2.74MB
返回 下载 相关 举报
ADS1.2开发工具的使用.ppt_第1页
第1页 / 共77页
ADS1.2开发工具的使用.ppt_第2页
第2页 / 共77页
ADS1.2开发工具的使用.ppt_第3页
第3页 / 共77页
ADS1.2开发工具的使用.ppt_第4页
第4页 / 共77页
ADS1.2开发工具的使用.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《ADS1.2开发工具的使用.ppt》由会员分享,可在线阅读,更多相关《ADS1.2开发工具的使用.ppt(77页珍藏版)》请在三一办公上搜索。

1、第六章 ADS1.2开发工具的使用,一、软件开发二、程序的编辑 三、程序的汇编与编译四、程序的链接 五、本节附录,一、软件开发,系统软件开发步骤图:,系统软件开发大致上可分为四个步骤:1、程序的编辑2、编译3、链接4、调试。,硬件调试示意图,1.1 ADS集成开发工具,ARM ADS全称为 ARM Developer Suite,是 ARM 公司推出的新一代ARM 集成开发工具。的最新版本是ADS 1.2 ADS集成开发工具组成部分:,Code Warrior IDE集成了ARM汇编、ARM的C/C+编译器、Thumb的C/C+编译器、ARM链接器,包含工程管理器、代码生成接口、编辑器、源文件

2、、类浏览器等等。Code Warrior IDE窗口:,1Code Warrior IDE简介,AXD调试器为ARM扩展调试器(ARM eXtended Debugger),包括ADW/ADU的所有特性,支持硬件仿真和软件仿真(ARMulator)。AXD调试器窗口如图所示:,2AXD调试器简介,1.2 ADS开发环境的系统资源,1ADS安装系统包含的可选文件ADS安装系统包含的组件:Program Files(主程序文件)、Example Files(例子程序)、Online documentation(在线文档)、Extension kits(扩展的ARM仿真工具包)、Applicatio

3、ns Library(应用库)等,在安装过程中可以按照需要选择安装。如图所示。,2ADS环境中的重要目录,假设ADS1.2开发工具包的安装路径为install_directory,ARM中C/C+库的存放位置:install_directorylibarmlib;install_directorylibcpplib,对应的头文件存放在nstall_directoryinclude下。ARM中工具文件的存放位置:所有的工具文件都在路径为install_directorybin的目录下,在这个bin目录下包含了一些非常重要的工具文件,如图所示。,重要的工具文件:armasm:ARM汇编语言编译器,

4、把ARM/Thumb指令的汇编语言源文件编译成相应的二进制代码。armcc:ARM C语言编译器,把C语言源程序编译成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+运行库链接在一起,根据提供的地址信息生成可执行的映像文件。,二、程序的编辑,1.1 工程管理窗口介绍1为什么要建立工程项目,把相互关

5、联的文件包含在一个工程项目里,便于管理和编译。,工程模板的含义分别是:1、ARM Executable Image:以这个模板建立的工程项目中,所有源文件中的ARM代码可编译成一个可执行的ELF格式的映像文件;2、ARM Object Library:以这个模板建立的工程项目中,所有源文件中的ARM代码可编译成一个armar格式的目标库;3、Empty Project:创建一个空的工程项目;4、Makefile Import Wizard:导入Makefile文件,编译后可转化成CodeWarrior工程文件;5、Thumb ARM Interworking Image:以这个模板建立的工程项

6、目中,支持ARM和Thumb代码混合编程,所有源代码可编译成一个可执行的ELF格式的映像文件;6、Thumb Executable Image:以这个模板建立的工程项目中,所有源文件中的Thumb代码可编译成一个可执行的ELF格式的映像文件;7、Thumb Object Library:以这个模板建立的工程项目中,所有源文件中的Thumb代码可编译成一个armar格式的目标库。,2工程管理窗口界面介绍,工程管理窗口提供了编辑、查看、编译和链接工程等多种功能。工程管理窗口图:,按钮具体功能:生成目标:下拉菜单,选择该工程的生成目标。可选的生成目标有Debug、DebugRel、Release三个

7、;标签栏:点击标签栏,分别显示不同的窗口;工具条:列举了一些常用功能的快捷按钮,实现对本工程项目设置参数、编译、调试、运行等操作;Touch列:指示该文件是否被编译或汇编,如果某个文件对应的Touch列打上,则表示该文件需要重新编译或汇编;Code列:显示源文件中代码的大小或者该组源文件代码大小之和,单位为字节;Data列:显示源文件中数据的大小或者该组源文件数据大小之和,单位为字节;下拉列:在某个文件的下拉列处单击,会弹出一个下拉菜单,下拉菜单包含如下内容:列举该文件包含的头文件,用户可以点击打开某个头文件;允许用户标记该文件重新编译或汇编。,1.2 代码编辑窗口介绍,单击 图标,会弹出一个

8、头文件下拉莱单。在这个下拉菜单中,包含当前文件涉及的所有头文件,如图所示。,1头文件下拉菜单,单击 图标,会弹出一个函数下拉菜单。在这个下拉菜单中,包含当前文件所有的函数。函数排列的顺序有两种:第一种默认按照在源文件中的先后顺序排列;另外一种也可以设置为按英文字符顺序排列。3标签下拉菜单单击 图标,会弹出一个标签下拉菜单。在这个下拉菜单中,包含当前文件中所有的标签。标签排列的顺序与源文件中的先后顺序一致。,2函数下拉莱单,图中,标签下拉菜单第1行Add marker是加标签选项按纽,第2行Removemarkers是删除标签选项按纽。,4文档设置下拉菜单 单击 图标,会弹出一个文档设置下拉菜单

9、。从这个菜单中可以打开或关闭当前编辑画面的颜色,关闭颜色会使画面变成单色,打开颜色会使画面变成由菜单“Edit”“Preferences”“Editor”“Text Colors”所设置的颜色。5版本控制下拉菜单 单击 图标,弹出一个版本控制下拉菜单 VCS(Version Control System)。这个下拉菜单提供当前文件的操作记录,可以帮助维护源程序的数据库,也可以使用这个下拉菜单从源文件中拷贝程序,检查修改的文件。VCS功能使用条件:一个是在 Codewarrior IDE中装入所需要的VCS插件程序;另一个就是在VCS功能配置选项中打开该项功能。,6文件修改标志文件修改标志包括

10、和,这两个标志在编辑屏幕的右上角。如果当前程序从上一次存储以来没有修改过,则显示 标志;如果程序被修改过,则显示 标志,程序存储后又重新显示 标志。,1.3 编辑画面的设置,1.Editor Settings选项卡,设置Remember(保存)选项,Font preferences系统会为每个文件保存程序员输入时选定的字体信如果不选择该选项,所有的文件都默认由 Codewarrior IDE设置的字体。Window position and size系统会自动保存程序编辑窗口在关闭时的位置和尺寸,以便在下次打开编辑窗口时与这次完全相同。Selection position该选项决定文件打开时程

11、序在编辑窗口中的位置。,设置Contextual(级联)选项,Edit Commands选择该选项,在编辑器窗口的级联菜单中将包含常用的编辑命令。Project Commands选择该选项,在编辑器窗口的级联菜中将包含常用的项目操作命令:Compile、Proprocess和Disassemble。VCS Commands选择该选项,在编辑器窗口的级联莱中将包含常用的版本控制命令。Browser Commands选择该选项,在编辑器窗口的级联菜中增加一条浏览器命令。Insert Template Commands插入函数模板选项。Debugger Commands在 CodeWarrior I

12、DE中,Debug功能是不使用的,本选项无效。,其他设置,Balance while typing:这个选项要求 CodeWarrior IDE检测圆括号、方括号和大括弧的匹配性。Use multiple undo:在编辑菜单中,有一个 Undo 功能和一个 Redo 功能。Relaxed C popup parsing:如果在源代码中使用 K&R风格的代码转换,就应该选择该选项 Drag and drop editing:将编辑屏幕分割成多个编辑窗口功能。Left margin click selects line:左边沿编辑功能选项。Sort fuction popup:函数分类选项。在编

13、辑窗口有一排工具图标,其中左边起第2个是函数列表图标。Enable Virtual Space:选择该选项,可以在源程序行后面任意位置进行插入操作。Balance Flash Delay:在上面Balance while typing选项中所应用的时间延时,单位是160 s。Default file format:系统默认的文本文件格式,2Font&Tabs选项卡,Font settings 具体内容如下:Font该选项是字体选项。Size该选项用于决定输入字符的尺寸。Script该栏不是可选项,当Font栏选择西文时,该栏显示“西方”;当Font栏选择中文时,该栏显示“CHINESE_GB2

14、312”。Sample样本显示栏。Document tab settings 和 Global tab settings Tab空格数。Auto Indent编辑行自动缩进选项。Tab indents selectionTab行缩进选项。Tab Inserts Spaces选择该选项时,按 Tab键时插入的是空格字符,而不是制表字符。,3Text Colors选项卡,Foreground:该选项指定的颜色用于文本中除下列各选项规定的字符外的所有其余字符;Background:该选项指定编辑画面的背景颜色;Comments:文本注释颜色选项;Keywords:关键字颜色选项;Strings:字符

15、串颜色选项;Custom Keywords:自定义关键字的颜色(Set1Set4);Classes:类别颜色;Functions:函数颜色;Temlates:模板颜色;Constants:常量颜色;Globals:全局变量颜色;Enums:枚举颜色;Macros:宏颜色;Other:其他颜色。,三、程序的汇编与编译,1.1 汇编与编译通常把从汇编语言变换到目标代码的过程称为汇编,通常把从其他高级语言变换到汇编语言的过程称为编译,,ADS1.2集成开发环境中的C/C+编译器,ADS1.2集成开发环境就是使用工具的任务:查找程序中存在的错误,比如语法错误、逻辑错误等 把C/C+语言程序编译成汇编语

16、言程序,然后再把汇编语言程序汇编成目标代码。生成列表文件和供链接用的目标代码文件等。,用两种方式实现同一个源文件的汇编,DebugRel Settings对话框,1.Target 生成目标基本选项设置面板,用于设置当前生成目标的一些基本信息。2Language Settings汇编器、编译器工具的选项设置面板,这些选项设置直接关系到汇编/编译工具如何对工程中所有源文件进行汇编和编译。,3.Linker链接器选项设置面板,用于设置与链接器相关的选项以及fromELF工具相关的选项。4.Editor编辑器选项设置面板,用于设置用户个性化的关键词显示方式。5.Debugger调试器选项设置面板,用于

17、设置系统中选用的调试器以及相关的配置选项。6.Miscellaneous Settings其他选项设置面板,用于设置一些杂类的选项。,1.2 ARM汇编器armasm的设置,1Target选项卡,Architecture or Processor设置目标CPU类型,等同于命令行中的-cpu cpu选项。Floating Point选择fpu的体系结构,等同于命令行中的-fpu name选项。Initial State设置初始状态下指令代码类型,等同于命令行中的-16|-32选项。Byte Order选择大端或小端数据格式,等同于命令行中的-bigend|-littleend选项。Equival

18、ent Command Line等效的命令行。,2ATPCS选项卡,Calling Standard该选项栏下指定是否选择ATPCS标准。Predeclared Register Names预定义寄存器名,如果选中了ATPCS单选框,表示ADS系统默认寄存器的预定义功能。ARM/Thumb Procedure Call Standard Options这个选项栏中包含了许多子选项。Software stack是否支持软件堆栈。,3Options选项卡,Check Register Lists寄存器列表顺序核对选项。No Warnings报警信息选项。选择该选项时,汇编时不生成警告信息。Sour

19、ce Line Debug选中该项,汇编时生成DWARF2格式的调试信息表。Keep Symbols选中该项,对源文件汇编时会把局部标号保留在目标文件的符号表中,供调试使用。Ignore C-style escape characters选中该选项,对源文件汇编时,忽略C风格的换码字符,如n和t等。Fault long running Load and Store Multiples选择该选项,在对源程序汇编时,将检查指令LDM和STM的寄存器列表不得超过5个。,4Predefines选项卡,在Variable文本框中填写count,在Directive下拉框中选择SETA(下拉框中包括SET

20、A、SETL、SETS),在Numeric文本框中填写数字10,然后单击Add按钮,则全局变量count定义完毕,并在List of Predefines列表栏中会显示count SETA 10。,5Listing Control选项卡,Miscellaneous Listing on:选中该选项,则汇编时会生成一个详细的列表文件,文件名与源文件名相同,后缀为.lst。Terse:精简列表文件选项。Cross-references:符号交叉引用信息选项。Dimensions该选项栏中可以定义列表文件宽度和长度,系统默认列表文件79个字符宽度,66行长度。,6Extras选项卡,在Via fil

21、e name编辑栏中可直接填写相应的via文件。该选项等同于命令行方式下的-via filename选项。,7未列举在图形方式下的其他重要选项-errors errorfile:错误列表文件选项。-o filename:目标文件名选项。,1.3 ARM编译器armcc的设置,armcc编译器设置,1Target and Source选项卡,Architetore or Process 选项:设置目标CPU类型 Source Language 选项:语言类别。Byte Order选项:选择大端小端;Floating Point选项:选择fpu的体系结构,2ATPCS选项卡,ATPCS(ARM a

22、nd Thumb Procedure Call Standard)是ARM和Thumb指令程序互相调用的标准。,ARM/Thumb interworking:ARM代码和Thumb代码代码混合使用选项;Software stack check:软件数据栈检查选项;Read-only position indepen:只读位置选项;Read-write position indeper:可读可写位置选项。,3Warnings选项卡,No warnings:指定编译器关闭所有的报警信息;Warn for all condition:指定编译器打开所有的报警信息;,4Errors选项卡,Errors

23、选项卡如图,选用这些选项会忽略一些错误信息,这意味着这样编译的源程序不严格遵循 C或 C+标准。,5Debug/Option选项卡,Debug ControlEnable debug table generation:此选项在编译输出的文件中会包含调换的信息表;Include preprocessor symbol:此选项对于宏定义较多的源文件;Enable debug of inline function:此选项不使用函数的内嵌功能。Optimization LevelMinimum:这是最低级别的优化;Most:这个级别的优化是不完全优化;All:这是一个对输出对代码完全优化的级别。Opt

24、imization CriterionFor space:此选项优化目标代码的尺寸,而牺牲代码的执行性能;For time:此选项优化目标代码的执行时间,而牺牲代码的存储空间。,7Code Gen选项卡,6Preprocessor选项卡 此选项卡指定了预处理器的特性,包括预处理器的输出和宏定义。,8Extras选项卡在这个选项卡中可以设置一个Via格式的配置文件,这样各种选项就可以从Via配置文件输入,避免所有选项一一设置带来的麻烦。,9未列举在图形方式下的其他重要选项,output-format 该选项设置编译输出文件的格式,可以使用这个选项产生汇编语言的列表文件和生成目标文件。-asm 该

25、选项指定编译器生成一个汇编语言的列表文件。-C 该选项指定编译器只进行编译但不准备链接。-S 该选项指定把编译器生成的汇编指令包含到列表文件中,但与-asm选项不同,该选项不能产生目标代码。-list 该选项指定编译器生成一个列表文件,列表文件包含源程序行、错误信息和警告信息。文件的内容可以使用选项-fi、-fj和-fu控制。-O filename 该选项指定一个文件,这个文件用来存放编译输出的结果。search Paths该选项设置包含文件的搜索路径。additional check附加核查选项。,四、程序的链接,1.1 与链接相关的文件对程序进行链接时,会涉及到以下一些相关的文件:目标文件

26、 Via文件 分散加载文件 映像文件 信息列表文件 错误信息列表文件 全局符号表文件 其中都是链接器的输入文件;都是链接器的输出文件;既可以是链接器的输入文件,也可以是链接器的输出文件。,1.2 ARM映像文件,1ARM映像文件的组成 ARM映像文件的组成部分ARM映像文件是一个层次性结构的文件,其中包含了域(region)、输出段(output section)、输入段(input section)。,映像文件组成结构示意图,输入段:输入段中包含了4类内容:代码、已经初始化的数据、未经过初始化的存储区域、内容初始化成0的存储区域。输出段:一个输出段中包含了一系列的具有相同的RO、RW和ZI属

27、性的输入段。域:一个域中包含l3个输出段,其中各输出段的属性各不相同。各输出段的排列顺序是由其属性决定的。,ARM映像文件各组成部分的地址映射 ARM映像文件各组成部分在存储系统中的地址有两种:一种是在映像文件位于存储器中时的地址,称为加载时地址;一种是在映像文件运行时的地址,称为运行时地址。,当映像文件中地址映射关系更复杂时,可以使用一个配置文件告诉链接器相关的地址映射关系。,设置地址映射关系,2ARM映像文件的入口点 两类入口点初始入口点(initial entry point);初始入口点是映像文件运行时的入口点,每个映像文件只有一个唯一的初始入口点,它保存在ELF头文件中。普通的入口点

28、(entry point)。普通的入口点是在汇编程序中用ENTRY伪操作定义。,定义初始入口点 初始入口点必须满足下面两个条件:初始入口点必须位于映像文件的运行时域内;包含初始入口点的运行时域不能被覆盖,它的加载时地址和运行时地址必须是相同的(这种域称为固定域root region)。,可以使用链接选项-entry address来指定映像文件的初始入口点,也可以在图形方式下设置初始入口点地址,普通入口点的用法普通的入口点是在汇编程序中用ENTRY伪操作定义。在嵌入式应用系统中,各种异常中断(如IRQ、FIQ、SVC、Undef、Abort)的处理程序的入口使用普通入口点标识。,可以使用链接选

29、项-first、-last来改变输入段排序顺序规则:输入段的属性 输入段的名称 各输入段在链接命令行的输入段列表中的排列顺序。,3输入段的排序规则各输入段的起始地址由两个因素决定:输出段起始地址 输入段在输出段中的排列顺序。,1.3 ARM链接器生成的符号,1链接器生成的与域相关的符号,对于只读的域,使用名称ER RO;对于可读写的域,使用名称ER RW;对于使用0初始化的域,使用名称ER ZI。,链接器为ZI输出段生成另外的符号,2链接器生成的与输出段相关的符号,3链接器生成的与输入段相关的符号,1.4 链接器armlink的设置,ARM Linker设置对话框,1Output选项卡 Par

30、tial 该选项指示链接器对目标文件进行部分链接,部分链接生成扩展名为O的ELF格式的目标文件,这个链接是为了以后链接使用,不生成可执行的映像文件。Simple 该选项指示链接器对目标文件进行简单链接,链接生成可执行映像文件。Scatter 该选项引入一个配置文件。这个配置文件是一个文本文件,由程序员编制而成。Symbol 使用该选项可以生成一个全局符号列表文件,这个文件包含的符号是映像文件中所使用的全局符号。Symbol editing 使用该选项可以指定一个 steering格式的文件。,2Option选项卡,Remove unused sectionsRead-only:删除RO类型的未

31、被使用的段;Read-write:删除RW类型的未被使用的段;Zero-initial:删除ZI类型的未被使用的段;Image entry point 设置映像文件入口点。其他选项,3Layout选项卡,Place at beginning of image选项组用于指定将某个输入段放置在它所在的运行时域的起始位置。在Object/Symbol文本框中指定一个符号名称,定义本符号的输入段被指定。在Object/Symbol文本框中指定一个目标文件名称,在Section文本框中指定一个输入段名称,从而确定了一个输入段作为指定的输入段。Place at end of image选项组用于指定将某个

32、输入段放置在它所在的执行时域的结尾,指定一个输入段的2种方法与Place at beginning of 选项组相同。,4Listings选项卡,Listings选项组 Image map:此选项使链接器产生一个关于映像文件的信息图;Symbols:此选项使链接器列出链接过程中的局部和全局符号及其数值,半空链接器产生的符号;Mangled C+:此选项使链接器在诊断信息和链接选项-xref、-xreffrom、-xrefto、-symbol产生的列表中显示mangled的C+符号名称;Section cross-reference:此选项使链接器列出所有输入段间的交叉引用;List file:

33、此选项用于指定列表文件的名称及其路径;Static callgraph:选中该选项链接器显示程序间调用关系。Give Information on 选项组Sizes:此选项使链接器列出映像文件中各输入目标文件和使用到的库文件的尺寸;Totals:此选项使链接器列出映像文件中所有输入目标文件和使用到的库文件的尺寸总和;Unused:此选项使链接器列出被删除的没有被使用的输入段信息;Veneers:此选项使链接器列出生成的veneers的信息。,5Extras选项卡,Make undefined symbols refer to 在该文本框中输入一个已经定义的全局符号,用来代替映像文件中所有未定义

34、的符号。Via file name 在该文本框中选择一个via格式的文件。Via格式的文件中包含了ARM链接器各命令行的选项,ARM链接器可以从该为文件中读取相应的链接器命令行选项。,五、本节附录,1.1 配置生成目标1)工程项目的生成目标根据选择,链接器生成的映像文件可以有3种不同的特性,称为3种生成目标如图。,DebugRel 在生成输出文件时,会生成必要的调试信息;Release 在生成输出文件时,将不包含调试信息;Debug 在生成输出文件时,会生成完全的调试信息。,2)Settings对话框打开Debug Settings对话框的操作步骤如下:打开一个工程项目;在工程项目窗口中选择D

35、ebug生成目标;通过下面的任何一个操作弹出Debug Settings对话框;在工程项目窗口中单击Target Settings按钮;选择“Edit”“Debug Settings”命令;在Debug Settings对话框中包括下面6个面板,其步骤如下:Target Settings 生成目标基本选项设置;Language Settings 编程语言选项设置;Linker 链接器选项设置;Editor 编辑器选项设置面板;Debugger 调试器选项设置面板;Miscellaneous Settings 其他选项设置面板。,生成目标基本选项用于设置当前生成目标的一些基本信息,包括生成目标的

36、名称、所使用的链接器等。它包括下面几组选项。下面分别介绍其含义与设置方法:Target Settings选项组;Access Paths选项组;Build Extras选项组;File Mappings选项组;Source Trees选项组。,设置Target Settings选项组,3)设置生成目标的基本选项,Target Name设置当前生成目标的名称 Linker选择使用的链接器。ARM Linker 选择armlink工具编译和链接文件;ARM Librarian 选择librarian工具,将文件转会成ARM库文件;None 不使用任何链接器。Pre-LinkerCodeWarrio

37、r IDE for ARM当前没有使用本选项 Post-Linker用于选择对链接器输出的文件的处理方式,可能的取值如下:None不进行链接后的处理;ARM fromELF使用fromELF工具处理链接器输出的ELF格式的文件,Output Directory用于定义本工程项目的数据目录。,设置Access Paths选项组,User Paths 单选按钮,用于指定用户路径。System Paths 单选按钮,用于指定系统路径。Always Search User Paths 复选框,用于指定在用户路径中搜索系统头文件。其他按钮,设置Build Extras选项组这些选项用于设置是否检查源文件

38、修改日期、是否缓存子工程项目、是否使用第三方调试器等等。,设置File Mappings选项File Mappings选项组的默认取值取决于下面两个条件:当前工程项目所使用的工程项目模板类型;当前的生成目标。,设置Source Trees选项组,Name 文本框中为当前选中路径的名称;Type 下拉列表框可以选择当前选中的路径的类型;Choose 使用本按钮可以选择实际的路径;Add按钮用于添加一条新的路径选项;Change 按钮用于修改当前路径选项;Remove 按钮用于删除当前路径选项。,1)Scatter文件结构scatter文件中可以指定下列信息:a.各个加载时域的加载时起始地址、最大

39、尺寸和属性;b.每个加载时域包含的输出段;c.各个输出段的运行时起始地址、最大尺寸、存储访问特性和属性;d.各个输出段中包含的输入段。,1.2 Scatter文件编写,Scatter文件结构示意图,加载时域的描述加载时域的格式如下所示:,输出段的描述输出段的格式如下所示:,输入段的描述 输入段里描述了一个文本字符串的模式,匹配该模式的输入段都将被包含在当前域中。模式中可以使用匹配符,符号*代表零个或者多个字符,符号?代表单个字符。进行匹配时,所有字符是大小写无关的。,Load_namebase_designatorattribute max_size,output_namebase_desig

40、nator attributemax_size,简单的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);本输出段包含了所有的ZI属性的输入段,它们被连续放置,程序

41、运行时地址映射关系,2)固定时域 设置输出段地址第1种方法是设定一个加载域中第1个输出段的运行地址,使其和该加载域的加载地址相同。这样该输出段就是一个固定域。,LR_10 x08000;加载域LR_1的起始地址为0 x8000ER_RO 0 x08000;输出段ER_RO的起始地址为0 x8000*(+RO);包含了所有的RO数据,包含初始入口点;其他部分内容,设置输出段属性第2种方法通过将某个输出段的属性设置成FIXED。,LR_10 x8000;加载时域LR_1的起始地址为0 x8000ER_RO0 x8000*(+RO);除了init.o之外的其他RO数据ER_INIT 0 x9000

42、FIXED;设置输出段属性为FIXED,确定固定域init.o(+RO);本输出段包含了init.o,包含映像文件的初始入口点;其他部分内容,3)一个实际系统的例子,ARM系统中的地址空间 地址映像关系,ROM_LOAD 0 x80000000;定义加载区名称ROM_LOAD,起始地址0 x80000000 ROM_EXE 0 x80000000;定义执行代码空间,起始地址与加载域地址相同 Startup.o(vectors,+First);首先放置Startup.o文件的向量表vectors*(+RO);后面地址空间放置其他RO属性代码 IRAM 0 x40000000;定义数据空间 Sta

43、rtup.o(+RW,+ZI)STACKS 0 x40004000 UNINIT;定义堆栈空间 stack.o(+ZI)ERAM 0 x81000000;定义数据空间*(+RW,+ZI);剩下未指定空间的所有数据 HEAP+0 UNINIT;定义堆空间 heap.o(+ZI),片外Flash启动程序的scatter文件,1.3 工程项目模板,思考题,1、请描述一下软件开发的整体步骤?2、在一个工程里面,汇编源文件的后缀是什么,C语言源文件的后缀是什么,C语言的头文件后缀是什么,最后链接生成的可执行映像文件的后缀是什么?3、ADS1.2集成开发工具有哪些部分组成,它们各自作用是什么?4、程序编辑的一般步骤是什么?为什么程序编辑过程中要建立工程项目?5、编辑画面设置中,主要有哪3项设置?如果想改变程序中字体大小,应如何设置?如果想要注释的文字为绿色,应如何设置?6、什么是汇编,什么是编译,两种有什么区别?对文件进行汇编和编译后,产生什么后缀的文件?7、程序链接时,会涉及哪些相关的文件,这些文件的作用是什么?8、简要描述一下ARM映像文件的组成?9、ARM链接器会生成哪些与域相关的符号,生成哪些与输入段相关的符号?10、Scatter文件的作用是什么?,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号