📄 其他资料 整理 ads 设定.txt
字号:
Simple:连接器根据连接器选项中指定的地址映射方式,生成简单的ELF格式的映像文件,所生成的映像文件关系比较简单.
Scattered:连接器根据scatter格式的文件中指定的地址映射方式,生成地址映射关系比较复杂的ELF格式的映像文件.
当选择Partial连接类型时,需要进行下列连接器选项设置:
Symbol:用于指定一个符号定义文件的名称.符号定义文件是一个文本文件,它的使用方法和使用普通的目标文件相同,将其作为ARM连接器的输入文件.ARM连接器从符号定义文件中提取需要的符号及相关信息,将这些信息加入到输出符号表中.
Symbol editing:用于指定一个符号编辑文件的名称.符号编辑文件是一个文本文件,用于修改输出文件中的输出符号表的内容.符号编辑文件中的命令可以完成隐藏全局符号的操作以及重命名全局符号的操作.
当选择Simple连接类型时,需要进行下列连接器选项设置:
RO Base:用于设置映像文件中RO属性输出段的加载时地址和运行时地址,地址值必须是字对齐的.
RW Base:映像文件中包含RW属性和ZI属性的输出段的运行时域的起始地址,地址是字对齐的.如果没有设置,则RW属性输出段和ZI属性输出段与RO属性输出段共享一个加载时域和一个运行时域.设置该选项后,映像文件包括两个运行时域,一个包含RO属性输出段,另一个包含RW属性输出段和ZI属性输出段.当指定了split选项时,映像文件包括两个加载时域,一个包含RO属性输出段,另一个包含RW属性输出段和ZI属性输出段.
Ropi:选中该复选框,映像文件中RO属性的加载时域和运行时域是位置无关的;如果没有选中,相应的域被标记为绝对的.
Rwpi:选中该复选框,映像文件中RW属性和ZI属性的输出段的加载时域和运行时域是位置无关的;如果没有选中,相应的域被标记为绝对的.
Split:选中该复选框,将包含RW属性和RO属性的输出段的加载时域分割成两个加载时域.
Symbol文本框和Symbol editing文本框:与选择Partial连接类型时相同.
当选择Scatter连接类型时,需要进行下列连接器选项设置:
Scatter文本框:用于指定ARM连接器使用的scatter格式的配置文件的名称.该配置文件是一个文本文件,用于指定映像文件地址映射方式,其中包含了各域及各段的分组和定位信息.
Symbol文本框和Symbol editing文本框:与选择Partial连接类型时相同.
Option选项卡:各选项含义及用法如下:
Remove unused sections:可以删除映像文件中没有使用的段.Read-only,Read-Write和Zero-initial分别表示可以删除的未使用的段的属性.
Include debugging information:选中该复选框,在输出文件中包含调试信息.这些调试信息包括调试信息输入段,符号表以及字符串表.
Search standard libraries:选中该复选框,ARM连接器扫描默认的C\C++运行时的库,以解析各目标文件中被引用的符号.
Use ARMLIB to find libraries :选中该复选框,连接器使用ARMLIB环境变量定义的路径搜索C运行时库,而不使用Target setting面板中的Access Paths选项组中定义的搜索路径.
Output local symbols :选中该复选框,ARM连接器在生成映像文件时,将局部符号也保存到输出符号表中.
Give progress information while linking :选中该复选框,ARM连接器在进行连接时显示进度信息.
Report might fail conditions as errors :选中该复选框,ARM汇编器将可能造成错误的条件作为错误信息,而不是警告信息
Image entry point:该选项组用于指定映像文件中的初始入口点的地址值.一个映像文件可以包括多个普通入口点,但是初始入口点只能有一个.当映像文件被一个加载程序加载时,加载程序将跳转到该初始入口点处执行.
Option选项卡如下:
Layout选项卡:在连接方式为Simple时有效,用来安排一些输入段在映像文件中的位置.
Place at beginning of image:指定将某个输入段放置在它所在的运行时域的开头.有下面两种方法来指定一个输入段:
在Object/Symbol文本框中指定一个符号名称.这时定义本符号的输入段被指定.
在Object/Symbol文本框中指定一个目标文件名称,在Section文本框中指定一个输入段名称,从而确定一个输入段作为指定的输入段.
Place at end of image:用于指定将某个输入段放置在它所在的执行时域的结尾.指定一个输入段的两种方法与Place at beginning of image选项组中相同.
Layout选项卡如下:
Listings选项卡:主要用于设置与输出连接器信息相关的选项.
Listings选项组:用于控制与输出连接器生成列表文件的情况.
Image map:选中该复选框,连接器产生一个关于映像文件的信息图,包括各运行时域,加载时域和映像文件中各输入段的起始地址和大小.
Symbols :选中该复选框,连接器列出连接过程中的局部和全局符号及其数值,包括连接器产生的符号
Mangled C++ :选中该复选框,连接器在诊断信息和连接选项-xref,-xreffrom,-xrefto,-symbol产生的列表中显示mangled的C++符号名称.
Section cross-reference: :选中该复选框,连接器列出所有输入段间的交叉引用.
List file:文本框用于指定列表文件名称及路径.
Static call graph:选中该复选框,连接器显示程序间的调用关系.
Give Information on选项组:用于控制连接器显示有关映像文件的信息.
Sizes :选中该复选框,连接器列出映像文件中各输入目标文件和使用到的库文件的大小.
Totals :选中该复选框,连接器列出映像文件中各输入目标文件和使用到的库文件的尺寸的总合.
Unused :选中该复选框,连接器列出被删除的没有被使用的输入段信息.
Veneers :选中该复选框,连接器列出生成的veneers的信息.
Layout选项卡如下:
Extras选项卡:可以设置一个via格式的配置文件,其他汇编选项可以从该配置文件中读入.还可以定义一个符号,用于替代其他所有未被定义的符号.
Make undefined symbols refer to:在该文本框输入一个已经定义的全局符号,用来代替映像文件中所有未定义的符号.ARM连接器在进行连接操作时,将所有未被解析的符号引用指向符号symbol.这种做法在自顶而下的设计中非常有用.在这种情况下使用本连接选项,可以连接部分实现的系统.
Via file name:在文本框中选择一个via格式的文件.Via格式的文件中包含了ARM连接器各命令行的选项,ARM连接器可以从该文件中读取相应的连接器命令行选项.这在限制命令行长度的操作系统中非常有用.
Extras选项卡如下:
fromELF工具的选项设置:可以将ARM连接器产生的ELF格式的映像文件转换成其他格式的文件.
Output format下拉列表框用于选择目标文件的格式.可能取值为:
Executable AIF:可执行的AIF格式的映像文件.
Non executable AIF:非可执行的AIF格式的映像文件.
Plain binary :BIN格式映像文件.
Intellec Hex :IHF格式映像文件.
Motorola 32 bit Hex: Motorola 32位S格式映像文件.
Intel 32 bit Hex: Intel 32位格式映像文件.
Verilog Hex: Verilog十六进制映像文件.
ELF格式
Text information文本信息
Output file name:设置fromELF工具的输出文件的名称.
Text format flags:用于置控制文本信息内容.
Verbose:连接器显示关于本次连接操作的详细信息.
Disassemble code:连接器显示反汇编代码.
Print contents of data sections:连接器显示数据段信息.
Print debug table:连接器显示调试表信息.
Print relocation information:连接器显示重定位信息.
Print symbol table:连接器显示符号表.
Print string table:连接器显示字符串表.
Print object sizes:连接器显示目标文件大小信息
.
窗口中按钮3是链接按钮,也可以直接点击下面窗口中源文件前的部分,将源文件与工程建立联系.一般应该全部选择.
按钮4是"生成"按钮,将弹出下面的窗口.其中左上角第一个圆内表示程序中的错误数,必须错误数为0才可以正确编译.第二个圆内表示警告,提示程序中可能存在的错误或不合理的问题.下面的窗口列出了具体错误的位置,类型和错误的可能原因,同时列出了项目的一些数据.将其修改并保存,从新编译直至没有错误为止.
4,完成以上步骤我们完成了编译一个工程项目的任务,就可以按6按钮运行,运行会自动跳出AXD Debugger进行下载调试.
在第一次连接进行实验时我们需要设置如下:
在下面出现的对话窗中选择ARMUL,完成对目标处理器的设置.
a)在模拟环境下
b)硬件环境下
点击Options—Congfiger Target.出现下面对话窗:在弹出的对话框中调入MultiICE.dll文件,就可完成对目标处理器的设置.
点击右边的Add按钮,在Multi-ICE Server的安装目录下找到MultiICE.dll文件,并添加到Target Environments中.添加后如下图所示.
点击右边的Configure按钮,弹出如下图所示的设置窗口.在Select a new processor中选择对应的处理器,点击确定按钮,完成设置,也即完成了AXD与Multi-ICE的连接.
对S3C2410进行初始化:
这里我们用到一个一个"reset.ini"文件,这个文件是对S3C2410进行初始化的一段代码.我们知道,当CPU在启动时内部很多寄存器状态是不确定的,在程序运行特别是单步调试中可能出现不可预料的错误,如程序"跑飞"等.所以我们要对CPU进行初始化,这个工作一般由BIOS完成,我们这里进行单步调试,不使用BIOS启动,所以要进行手工初始化.
点击菜单栏System Views-Command Line Interface(或Alt—L)在下面的窗口中出现Command Line Interface窗口如下图:
用记事本打开事先拷贝到工程目录中的"reset.ini"文件,如右图,这是22行代码
将这些代码复制拷贝到ADX的Command Line Interface窗口中,初始化过程中可能会出现以下提示,这时点击确定即可.
5,下载工程可执行二进制文件到实验板
在AXD中点击菜单栏"File—Load Image" .
选中实验中我们建立的工程中的DebugRel目录中的*******.axf文件并打开.
出现下面的调试窗口:
6,调试程序
我们看到上图中标号1的圆内蓝色箭头表示程序当前即将运行到的位置.在程序某一个行号前的空白除双击,就可以出现标号为2的圆内的红色圆点,这是程序运行的断点,当程序运行到这个位置时会自动停下来等待调试人员调试.再次双击这里就会取消这个断点.
标号3的圆内是单步调试相关的按钮.
这是运行和暂停按钮.
这是STEP IN按钮,表示跳进函数,按这个按钮是真正的"单步调试",可以一行一行代码的调试.
这是STEP按钮,按这个按钮将跳过函数体内部,可以更清晰的理清程序脉络,节约调试时间.
这是STEP OUT按钮,按这个按钮将跳出正在运行的程序体.当程序调试中不想继续调试当前函数时,按此按钮将跳出运行主流程中下一个语句.
这是STEP URSOR按钮,把光标放到需要暂停的语句,按下这个按钮,程序就停在了这个语句
附录:实验中需要拷贝到实验目录下的12个文件,这十二个文件是三星公司提供的针对S3C2410的源文件:
2410init.s ,2410slib.s ,2410Main.c ,2410lib.c:这四个文件在编译时要加入,如图:
2410addr.c,2410addr,2410lib.c,2410slib.c,Def.c,Memcfg,Option.c,Option六个文件
另外还有scat和reset.ini两个文件也要拷贝到实验目录下.
在ADS新工程项目中生成目标有哪几种,有什么区别
简述Target Setting →Linker中ARM Linker和ARM Librarian之间的区别
简述Target Setting →Post-Linker之中ARM fromELF,Batch File Runner之间的区别
为了能够保证程序的正确运行,在Access Paths中有哪些选项需要设置
在Language Settings→Target→Floating Point下拉列表中Pure-Endian softfp选项的作用是什么
在Language Settings→Target 中Initial State选项的作用是什么
在Options选项卡中,Check Register Lists的作用是什么
在Options选项卡中,Keep Symbols的作用是什么
简述如何在配置对话框中定义全局变量,并对其进行赋值
简述在配置不同版本的ARM芯片时,需要做哪些工作
课 后 作 业
简述Target and Source →Source Language中ANS/ISO Standard C, Strict ANSI/ISO Standard C, Embedded C++之间的区别.
简述在Language Settings 中ATPCS选项卡内各个选项的具体作用
ARM连接器的连接方式有哪几种,各有什么区别
当选择了Simple连接类型时,需要配置哪些内容
当选择了Scattered连接类型时,需要配置哪些内容
ARM连接器认为哪些输入段是被使用的
若想让输出文件包含调试信息,需要如何进行设置
如何设置映像文件的初始入口点地址
如何将ELF格式转换为其它格式,比如AIF
若需要重新安排输入段在映像文件中的位置,如何配置
如何让编译器不产生Warnings信息
Thank you for listening!
谢谢大家!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -