.elf和.bin的区别

本文介绍了BIN和ELF文件在嵌入式系统中的角色。BIN文件是用于CPU直接执行的二进制镜像,而ELF文件包含更多调试信息,适用于有操作系统的环境。通过特定工具,可以从ELF转换为BIN,并可以使用GDB进行调试。此外,还讨论了如何查看这两种文件的信息。
摘要由CSDN通过智能技术生成

bin:Binary ,raw binary二进制文件,BIN文件是将elf文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像,可以被CPU 运行的二进制文件。比如uboot 和kernal或rtos可执行二进制文件。flash上的需要直接运行的只能是raw binary格式的文件。

elf:executable  and   link   format,文件里面包含了符号表,汇编等;ELF格式是在有操作系统时,操作系统会根据ELF解析出代码、数据等等,最终仍是以BIN运行。由于elf文件的信息比较全,所以可以用来以单步跟踪的方式运行和GDB 调试。执行ELF程序则需要一个ELF Loader,比如kernel。

代码生成.o

arm-linux-gnu-gcc -g $(CFLAG) -c test.c 

LDFILE= test.lds

.o生成.elf

arm-linux-gnu-ld -g-Bstatic -T $(LDFILE)  test.o --start-group -Map test.map -o test.elf

elf 文件转换为bin文件

arm-linux-gnu-objcopy -O binary test.elf test.bin

 查看elf 文件信息

arm-linux-gnu-objdump -h test.elf

查看bin文件信息
arm-linux-gnu-objdump -h -b binary -m arm test.bin

bin 文件增加信息头生成image或压缩,运行后还原成2进制文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值