BIN文件与ELF文件的差异
BIN文件是 raw binary 文件,这种文件只包含机器码。
ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。
所以ELF文件的体积比对应的BIN文件要大。
执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
执行ELF程序则需要一个ELF Loader。uboot和Linux kernel启动的时候是没有ELF Loader的,所以烧在flash上的文件只能是raw binary格式的,即镜像文件image。
文件的转换
1. 通过gcc编译出来的是elf文件
2. 通过objcpy可以把elf文件转换为bin文件