前缀:arm-none-linux-gnueabi-
gcc 编译命令
arm-none-linux-gnueabi-gcc -c led_asm.S -o led_asm.o
ld 链接:将所有的.o文件链接生成可执行文件(.elf)
arm-none-linux-gnueabi-ld -Ttext=0x43c00000 led_asm.o -o led_asm.elf
-Tmap.lds : 指定链接脚本
objdump 将.elf文件进行反汇编生成反汇编文件(.dis)
arm-none-linux-gnueabi-objdump -D led_asm.elf > led_asm.dis
objcopy 将.elf文件生成二进制文件(.bin)
arm-none-linux-gnueabi-objcopy -O binary led_asm.elf led_asm.bin
nm : 查看可执行文件的符号表
arm-none-linux-gnueabi-nm led_asm.elf > led_asm.map
size : 查看可执行文件中各个数据段的大小
arm-none-linux-gnueabi-size led_asm.elf
readelf : 查看可执行文件的头部信息
arm-none-linux-gnueabi-size -h led_asm.elf
strip : 压缩可执行程序,删除一些无用的符号信息,
不影响程序的运行。切记不可以对中间文件使用strip命令
arm-none-linux-gnueabi-strip interface.elf
<重点掌握> 根文件系统移植需要使用此命令。
addr2line : 根据地址信息定位错误位置的信息
arm-none-linux-gnueabi-addr2line 0x43c0167c -e interface.elf -f
-e : 指定可执行文件
-f : 回显函数名