GNU ARM命令行工具基本使用入门
调用格式:
arm-elf-gcc [stage-opt] [other-opts] -mcpu=arm7tdmi in-file -o out-file
常见用法:
将C代码编译为二进制目标文件:
arm-elf-gcc -c -O2 -g -mcpu=arm7tdmi filename.c -o filename.o
将多个二进制目标文件合并为一个可执行文件:
arm-elf-ld filename1.o filename2.o … -o filename.elf
将C代码直接编译生成可执行文件:
arm-elf-gcc -O2 -g -mcpu=arm7tdmi filename.c -o filename.elf
将C代码编译生成汇编代码:
arm-elf-gcc -S -fverbose-asm -mcpu=arm7tdmi filename.c -o filename.s
arm-elf-objdump option filename | more
objdump displays information about one or more object files. The options
control what particular information to display. This information is mostly useful
to programmers who are working on the compilation tools, as opposed to
programmers who just want their program to compile and work.
例如:arm-elf-objdump -S a2.o使用readelf查看elf文件的内容,例如:arm-elf-readelf -a a2.elf
arm-elf-objcopy有一个很重要的作用是把代码从elf文件中抽取出来,形成可执行的机器码:
例如:arm-elf-objcopy -O binary -R .comment -R .note -S a2.elf a2.bin
形成的结果文件a2.bin可以烧到flash或下载到内存中去.
objcopy uses the GNU BFD Library to read and write the object
files. It can write the destination object file in a format different
from that of the source object file. The exact behavior of objcopy is
controlled by command-line options.
arm-elf-nm用来列出elf文件中使用到的symbol,例如:arm-elf-nm a1.o
作者:许强1. 本博客中的文章均是个人在学习和项目开发中总结。其中难免存在不足之处 ,欢迎留言指正。 2. 本文版权归作者和博客园共有,转载时,请保留本文链接。