ADS的基本设置

 

ADS 的基本设置

新建中 project的选项

在新建对话框中为用户提供了 7种可选择的工程类型。

  1. ARM Executable Image :用于由 ARM 指令的代码生成一个 ELF 格式的可执行映像文件;

  2. ARM Object Library :用于由 ARM 指令的代码生成一个 armar 格式的目标文件库;

  3. Empty Project :用于创建一个不包含任何库或源文件的工程;

  4. Makefile Importer Wizard :用于将 Visual C nmake GNU make 文件转入到 CodeWarrior IDE 工程文件;

  5. Thumb ARM Executable Image :用于由 ARM 指令和 Thumb 指令的混和代码生成一个可执行的 ELF 格式的映像文件;

  6. Thumb Executable image :用于由 Thumb 指令创建一个可执行的 ELF 格式的映像文件;

  7. Thumb Object Library :用于由 Thumb 指令的代码生成一个 armar 格式的目标文件库

 

进入项目以后进行 DebugRel Setting相关设置

1.1Target Settings

其中在 Target Settings中,有 Target Name Linker Pre-linker Post-linker等需要设置:

Target Name:

Target 在设置中通常有三种模式: (默认为 DebugRel)

  1. DebugRel :使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;

  2. Debug :使用该目标为每一个源文件生成最完全的调试信息;

  3. Release :使用该目标不会生成任何调试信息。

Linker: 选项供用户选择要使用的链接器。

  1. ARM Linker :(默认选择)使用该链接器,将使用 armlink 链接编译器和汇编器生成的工程中的文件相应的目标文件。

  2. None :不是不用任何链接器,如果使用它,则工程中的所有文件都不会被编译器或汇编器处理。

  3. ARM Librarian :表示将编译或汇编得到的目标文件转换为 ARM 库文件。

Pre-linker 目前 CodeWarrior IDE不支持该选项。


Post-Linker 选择在链接完成后,还要对输出文件进行的操作。

  1. ARM from ELF :在链接生成映像文件后,再调用 FromELF 命令将含有调试信息的 ELF 格式的映像文件转换成其他格式的文件。这里为二进制代码烧到 flash 当中去

  2. None :不进行操作

  3. Batch File Runner

 

1.2Language Settings

ARM的编译器选择,默认的 ARM体系结构是 ARM7TDMI,如汇编编译器 armasm C编译器 armcc等实用默认即可,还可以进行字节顺序大端小端模式的设置,一般默认即可。

 

1.3Linker设置

1.3.1ARM Linker

这些选项对最终生成的文件有着直接的影响

Output 选项:

Linktype: 提供了三种链接方式

  1. Partia :链接器只进行部分链接,经过部分链接生成的目标文件,可以作为以后进一步链接时的输入文件

  2. Simple :默认的链接方式,也是最为频繁使用的链接方式,它链接生成简单的 ELF 格式的目标文件,使用的是链接器选项中指定的地址映射方式。

    选择该链接方式会出现 Simple image 的设置:

RO Base 这个文本框设置包含有 RO段的加载域和运行域为同一个地址。默认是 0x8000。这里用户要根据自己硬件的实际 SDRAM的地址空间来修改这个地址,保证在这里填写的地址,是程序运行时, SDRAM地址空间所能覆盖的地址。我们所应用的 CS-II使用 0x00000000.


RW Base 这个文本框设置了包含 RW ZI输出段的运行域地址。如果选中 split选项,链接器生成的映像文件将包含两个加载域和两个运行域,此时,在 RW Base中所输入的地址为包含 RW ZI输出段的域设置了加载域和运行域地址。我们所应用的 CS-II使用 0x40000030


Ropi 选中这个设置将告诉链接器使包含有 RO输出段的运行域位置无关。使用这个选项,链接器将保证下面的操作:

检查各段之间的重定址是否有效;

确保任何由 armlink自身生成的代码是只读位置无关的。


Rwpi 选中该选项将会告诉链接器使包含 RW ZI输出段的运行域位置无关。如果这个选项没有被选中,域就标识为绝对。每一个可写的输入段必须是读写位置无关的。如果这个选项被选中,链接器将进行下面的操作,

检查可读 /可写属性的运行域的输入段是否设置了位置无关属性;

检查在各段之间的重地址是否有效;


Split Image 选择这个选项把包含 RO RW的输出段的加载域分成 2个加载域:一个是包含 RO输出段的域,一个是包含 RW输出段的域。


Relocatable 选择这个选项保留了映像文件的重定址偏移量。这些偏移量为程序加载器提供了有用信息。

  1. Scattered :链接器要根据 scatter 格式文件中指定的地址映射,生成复杂的 ELF 格式的映像文件。一般情况下使用不太多


Options选项

Image entry point: 它指定映像文件的初始入口点地址值,当映像文件被加载程序加载时,加载程序会跳转到该地址处执行。用户可以在这个文本框中输入下面格式的入口点:

  1. 入口点地址:一个数值,例如 -entry 0x0

  2. 符号:该选项指定映像文件的入口点为该符号所代表的地址处,比如: -entry int_handlerg, 如果该符号有多处定义存在, armlink 将产生出错信息。

  3. offset+object(section) :该选项指定在某个目标文件的段的内部的某个偏移量处为映像文件的入口地址,例如: -entry 8+startup(startupseg)

需要引起注意的是,这里不可以用符号 main作为入口点地址符号,否则将会出现类似“ Image dose not have an entry point (Not specified or not set due to multiple choice)”的错误信息。

我们使用的 CS-II设置为 0x00即可


Layout选项

Object/Symbol: 我们使用的 CS-II startup.o


Section: vectors 我们使用的 CS-II vectors

1.3.2ARM from ELF

实现将链接器,编译器或汇编器的输出代码进行格式转换的功能。

例如,将 ELF格式的可执行映像文件转换成可以烧写到 ROM的二进制格式文件;对输出文件进行反汇编,从而提取出有关目标文件的大小,符号和字符串表以及重定址等信息。

只有在 Target 设置中选择了 Post-linker,才可以使用该选项。


Output format
  1. plain binary(BIN 格式映像文件 )

  2. Motorola 32-bit S-record format(Motorola 32 S 格式映像文件 )

  3. Intel Hex 32 format(Intel 32 位格式映像文件 )

  4. Verilog-like hex format(Verilog 16 进制文件 )

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值