axf elf 和bin区别
-
-
Eagleson
- LV5工程师
-
| 2016-07-18 18:12:03
- 浏览量 754
- 回复:0
(1)
axf和elf都是编译器生成的可执行文件,区别是:ADS编译出来的是AXF文件。
gcc编译出来的是ELF文件。两者虽然很像,但还是有差别的。这是文件格式的差别,不涉及调试格式。(2)
axf/elf是带格式的映象
bin是直接的内存映象的表示axf/elf文件里面包含了符号表,汇编等。BIN文件是将elf文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像。由于elf文件的信息比较全,所以可以用来以单步跟踪的方式运行。在ADS下,axf文件可以直接用axd进行调试运行。Linux OS下,ELF通常就是可执行文件,通常gcc -o test test.c,生成的test文件就是ELF格式的,在Linux Shell下输入./test就可以执行。bin文件是经过压缩的可执行文件,去掉ELF格式的东西,仅仅保留最纯的汇编。在系统没有加载操作系统的时候可以执行。
在Embedded中,上电开始运行,没有OS系统,如果将ELF格式的文件烧写进去,包含一些ELF格式的东西,arm运行碰到这些指令,就会导致失败,如果用bin文件,程序就可以一步一步运行。
(1)
axf和elf都是编译器生成的可执行文件,区别是:ADS编译出来的是AXF文件。
gcc编译出来的是ELF文件。两者虽然很像,但还是有差别的。这是文件格式的差别,不涉及调试格式。(2)
axf/elf是带格式的映象
bin是直接的内存映象的表示axf/elf文件里面包含了符号表,汇编等。BIN文件是将elf文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像。由于elf文件的信息比较全,所以可以用来以单步跟踪的方式运行。在ADS下,axf文件可以直接用axd进行调试运行。Linux OS下,ELF通常就是可执行文件,通常gcc -o test test.c,生成的test文件就是ELF格式的,在Linux Shell下输入./test就可以执行。bin文件是经过压缩的可执行文件,去掉ELF格式的东西,仅仅保留最纯的汇编。在系统没有加载操作系统的时候可以执行。
在Embedded中,上电开始运行,没有OS系统,如果将ELF格式的文件烧写进去,包含一些ELF格式的东西,arm运行碰到这些指令,就会导致失败,如果用bin文件,程序就可以一步一步运行。