- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
零死角玩转STM32
淘宝:fi
:
扫描进入淘宝
主讲内容
0101 编译过程
0202 程序的组成、 与运行
030303 编译工具链
0404 MDK工程的文件类型
0505 实验:自动分配变量到外部SRAM
实验:优先使用 SRAM并
0606
分配堆到外部SRAM
4. o、axf及elf文件
*.o、*.elf、*.axf、*.bin及*.hex文件都 了编译器根据源代码生成
的机器码,根据应用场合的不同,它们又有所区别。
ELF文件说明
*.o、*.elf、*.axf 以及前面提到的lib文件都是属于目标文件,它们都
是使用ELF格式来 的,关于ELF格式的详细内容请参考配套资料里的
《ELF文件格式》文档了解,它讲解的是Linux下的ELF格式,与MDK使用的
格式有小区别,但大致相同。在本 中,仅讲解ELF文件的 概念。
ELF是Executable and Linking Format的缩写,译为可执行 格
式,该格式用于 目标文件的内容。在Linux及Windows系统下都有使用该
格式的文件(或类似格式)用于 应用程序的内容,告诉操作系统如何 、
加载及执行该应用程序。
ELF文件说明
目标文件主要有如下三种类型:
• 可重定位的文件(Relocatable File),包含基础代码和数据,但它的代码及数
据都没有指定绝对地址,因此它适合于与其他目标文件 来创建可执行文件
或者共享目标文件。这种文件一般由编译器根据源代码生成。
例如MDK的armcc和armasm生成的*.o文件就是这一类,另外还有Linux
的*.o 文件,Windows 的*.obj文件。
ELF文件说明
• 可执行文件(Executable File) ,它包含适合于执行的程序,它 组织的代
码数据都有固定的地址(或相对 地址的偏移),系统可根据这些地址信息把
程序加载到内存执行。这种文件一般由 器根据可重定位文件 而成,它
主要是组织各个可重定位文件,给它们的代码及数据一一打上地址标号,固定
其在程序 的位置, 后,程序 各种代码及数据段不可再重定位(即
不能再参与 器的 )。
例如MDK的armlink生成的*.elf及*.axf文件,(使用gcc编译工具可生成
*.elf文件,用armlink生成的是*.axf文件,*.axf文件在*.elf之外,增加了调试使用
的信息,其余区别不大,后面 仅讲解*.axf文件),另外还有Linux的/bin/bash
文件,Windows 的*.exe文件。
ELF文件说明
• 共享目标文件(Shared Object File),它的定义比较难理解, 直接举例,
MDK生成的*.lib文件就属于共享目标文件,它可以继续参与 ,加入到可执
行文件之中。另外,Linux的.so,如/lib/ glibc-2.5.so,Windows 的DLL都属于
这一类。
o文件与axf文件的关系
原创力文档


文档评论(0)