欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[ARM]-ARM ToolChains介绍

程序员文章站 2022-07-01 23:25:15
...


★★★ 友情链接 : 个人博客导读首页—点击此处 ★★★

1、toolchains版本的介绍

在linaro官网有众多toolchains的版本,目前比较常用的是4.9-2016.02

Parent Directory
folder	4.9-2016.02	-		
folder	4.9-2017.01	-		
folder	5.1-2015.08	-		
folder	5.2-2015.11	-		
folder	5.2-2015.11-1	-		
folder	5.2-2015.11-2	-		
folder	5.3-2016.02	-		
folder	5.3-2016.05	-		
folder	5.4-2017.01	-		
folder	5.4-2017.05	-		
folder	5.5-2017.10	-		
folder	6.1-2016.08	-		
folder	6.2-2016.11	-		
folder	6.3-2017.02	-		
folder	6.3-2017.05	-		
folder	6.4-2017.08	-		
folder	6.4-2017.11	-		
folder	6.4-2018.05	-		
folder	6.5-2018.12	-		
folder	7.1-2017.05	-		
folder	7.1-2017.08	-		
folder	7.2-2017.11	-		
folder	7.3-2018.05	-		
folder	7.4-2019.02	-		
folder	7.5-2019.12

比如我们选择4.9-2016.02这个版本查看
https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/

arm开头的是arm32使用的,aarch64开头的是arm64使用的,带hf的是支持浮点型的

  • aarch64-linux-gnu

  • arm-linux-gnueabi

  • arm-linux-gnueabihf

2、toolchains中的命令介绍

toolchains支持众多命令,列举如下:

gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin$ ls
aarch64-linux-gnu-addr2line  aarch64-linux-gnu-cpp        aarch64-linux-gnu-gcc-ar
aarch64-linux-gnu-gfortran  aarch64-linux-gnu-objcopy  aarch64-linux-gnu-strings
aarch64-linux-gnu-ar         aarch64-linux-gnu-elfedit    aarch64-linux-gnu-gcc-nm
aarch64-linux-gnu-gprof     aarch64-linux-gnu-objdump  aarch64-linux-gnu-strip
aarch64-linux-gnu-as         aarch64-linux-gnu-g++        aarch64-linux-gnu-gcc-ranlib
aarch64-linux-gnu-ld        aarch64-linux-gnu-ranlib   gdbserver
aarch64-linux-gnu-c++        aarch64-linux-gnu-gcc        aarch64-linux-gnu-gcov
aarch64-linux-gnu-ld.bfd    aarch64-linux-gnu-readelf  runtest
aarch64-linux-gnu-c++filt    aarch64-linux-gnu-gcc-4.9.3  aarch64-linux-gnu-gdb
aarch64-linux-gnu-nm        aarch64-linux-gnu-size

部分命令介绍:

  • aarch64-linux-gnu-gcc 这就是交叉编译器,将源文件编译成elf可执行文件
  • aarch64-linux-gnu-strip 删除elf中的符号表,生成干净的可执行文件
  • aarch64-linux-gnu-objdump 将elf文件反汇编,输出dump文件

3、objdump的详细使用

查看help信息

bin$ ./aarch64-linux-gnu-objdump
Usage: ./aarch64-linux-gnu-objdump <option(s)> <file(s)>
 Display information from object <file(s)>.
 At least one of the following switches must be given:
  -a, --archive-headers    Display archive header information
  -f, --file-headers       Display the contents of the overall file header
  -p, --private-headers    Display object format specific file header contents
  -P, --private=OPT,OPT... Display object format specific contents
  -h, --[section-]headers  Display the contents of the section headers
  -x, --all-headers        Display the contents of all headers
  -d, --disassemble        Display assembler contents of executable sections
  -D, --disassemble-all    Display assembler contents of all sections
  -S, --source             Intermix source code with disassembly
  -s, --full-contents      Display the full contents of all sections requested
  -g, --debugging          Display debug information in object file
  -e, --debugging-tags     Display debug information using ctags style
  -G, --stabs              Display (in raw form) any STABS info in the file
  -W[lLiaprmfFsoRt] or
  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
          =frames-interp,=str,=loc,=Ranges,=pubtypes,
          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
          =addr,=cu_index]
                           Display DWARF info in the file
  -t, --syms               Display the contents of the symbol table(s)
  -T, --dynamic-syms       Display the contents of the dynamic symbol table
  -r, --reloc              Display the relocation entries in the file
  -R, --dynamic-reloc      Display the dynamic relocation entries in the file
  @<file>                  Read options from <file>
  -v, --version            Display this program's version number
  -i, --info               List object formats and architectures supported
  -H, --help               Display this information