Gcc 编译出来的是ELF文件。通常gcc –o test test.c,生成的test文件就是ELF格式的,在linuxshell下输入 ./test就可以执行。
Bin 文件是经过压缩的可执行文件,去掉ELF格式的东西,纯粹的机器码。在RAM中直接运行。
elf(executable and link format)文件里面包含了符号表,汇编等。
BIN文件是将elf文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像。所以ELF文件的体积比对应的BIN文件要大。
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
#生成的test文件就是ELF格式的
$(CC) -c -o test test.c
#生成的(OUTPUT).elf文件转为bin文件
$(OBJCOPY) -O binary $(OUTPUT).elf $(OUTPUT).bin
#对(OUTPUT).elf文件进行反汇编生成汇编代码文件
$(OBJDUMP) -D $(OUTPUT).elf > $(BIN)\asm.txt