介绍
下面是STM32代码编译生成的几种特殊格式的文件,开发中经常遇到,每种文件都有不同的作用

文件格式
rt-thread.axf是MDK IDE编译生成的带调试信息的可执行文件,里边记录了大量的函数、变量符号表等

rt-thread.elf 是GNU ARM编译生成的可调试程序文件,里边带有大量的调试信息符号表,可以使用objdump命令查看符号表
arm-none-eabi-objdump.exe -a rt-thread.elf
rt-thread.map:内存映射文件,各种FLASH和RAM、函数以及变量的映射关系

rtthread.bin:单纯的二进制执行代码,甚至没有地址信息

rtthread.hex:带地址的十六进制可行性代码文件

rt-thread.lnp:链接文件,告诉链接器如何把各部分的二进制代码组织拼接起来

转换关系
首先axf和elf都是通过编译器链接生成的(下图是elf文件)

axf生成bin

axf通过FromELF生成hex,要手动勾选,hex文件一般在出厂烧录时有用

elf通过objcopy生成bin

区别
- hex和bin:前者带地址信息,后者没有
- axf和elf:都是带调试信息的可执行文件,前者是ARM定义的,后者是GNU定义的
- bin和elf,后者有调试信息,前者没有
6万+

被折叠的 条评论
为什么被折叠?



