这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请问在ADS下编译生成的bin和elf格式有什么差别

共6条 1/1 1 跳转至

请问在ADS下编译生成的bin和elf格式有什么差别

菜鸟
2006-09-05 04:33:03     打赏
为什么bin没有ELF格式的ELF header, Program header也同样可以运行?



关键词: 请问     编译     生成     格式     什么     差别    

菜鸟
2006-09-05 05:26:00     打赏
2楼

BIN - 纯粹的二进制文件,基本的程序指令。

ELF - Exectuable and Linkable Format 这个文件出来包括基本的指令外,还包括很多别的信息:调试信息,SYMBOLE, 程序执行地址。。。

用专门的工具可以把ELF中的二进制代码给提取出来,转换成BIN格式。但同时别的信息也就全没了。

如果你想详细了解ELF,GOOGLE一下,参考资料很多的。


菜鸟
2006-09-05 07:13:00     打赏
3楼
那么请问生成的bin还含有relocatable信息吗?比如在ARM中我们用scatter进行link,但是scatter用两个execution section,这样将生成两个bin,假设是bin1,bin2,再假设我们在bin1中需要调用bin2的函数,eg function1,那么请问bin1将怎样定位呢?是否symbol function1将丢失,直接以地址代替,eg mov pc 0x000020 来代替。谢谢!

菜鸟
2006-09-06 05:21:00     打赏
4楼
如果你直接生产BIN文件,你要知道这个bin文件烧写到那个地址上去。如果你把2个bin文件都烧写到相应的位置上去,运行就OK。

菜鸟
2006-09-06 05:31:00     打赏
5楼
谢谢。我现在就是这样做的,利用scatter将bin烧到flash的绝对地址上。但是比较迷惑的是,如果在bin1中调用bin2 的函数,那么bin2函数是否在生成bin的过程中,已经将symbol丢失了,只是剩下一个地址?

菜鸟
2006-09-06 07:52:00     打赏
6楼
SYMBOL只是调试的时候用的。所有的函数调用都是通过地址来完成的。

共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]