我有一个STM32,我在其中加载ELF文件(使用OpenOCD和JTAG).到目前为止,我还没有真正关注我加载的ELF文件的大小.
通常,当我编译一个对我的电路板来说太大的ELF文件时(我的电路板有128KB的RAM可以加载可执行文件),链接器会抱怨(在链接器脚本中我指定了RAM的大小).
现在我注意到输出的ELF文件的大小,我看到它是261KB,然而链接器没有抱怨!
为什么我的ELF文件如此之大,但我的链接器很好用吗?主机上的ELF文件是否完全加载到主板上?
否 - ELF包含未加载的重定位记录等内容.它还可以包含仅由调试器加载的调试信息(通常为DWARF格式).
您可能希望用它readelf来了解您的某个ELF文件实际包含的内容.你可能不想一直这样做,但是至少做几次以便了解那里有什么可以更好地了解你正在处理什么.
readelf是binutils包的一部分; 很有可能你已经拥有了其他开发工具附带的副本.
如果你想了解更多细节,谷歌搜索"ELF格式"之类的东西应该会出现很多文章.但请注意,ELF是一种非常重要的格式.如果您决定要了解所有细节,那么需要花费大量的时间和精力.
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |