基本的网站建设步骤,wordpress如何应用插件下载失败,windows云桌面,使用vue做简单网站教程汽车电子开发过程中#xff0c;代码完成后#xff0c;程序编译完成 会生成 elf文件 或 hex文件#xff0c;可以烧录到MCU中调试#xff0c;那么究竟什么是 elf文件呢#xff1f; elf 文件中又包含哪些信息#xff1f; 如何解析 elf文件呢?1. What is elf fileELF(Execut…汽车电子开发过程中代码完成后程序编译完成 会生成 elf文件 或 hex文件可以烧录到MCU中调试那么究竟什么是 elf文件呢 elf 文件中又包含哪些信息 如何解析 elf文件呢?1. What is elf fileELF(Executable and Linking Format)elf文件是 Linux下定义的一种文件格式。elf BibleLinux Standard Base 定义如下 。文末放链接。1.1 elf type广义上 elf文件 不止包含后缀为elf的 *.elf 文件ELF文件有三种类型可重定位的对象文件(Relocatable file).o文件是 由汇编器汇编生成的对象文件里面包含的内容就是01这样的机器可执行的指令当程序要执行时还需要进行链接(link).链接就是把多个.o文件链成一个可执行文件。 .a 文件.a文件是多个.o文件的组合。可执行的对象文件(Executable file)可执行应用程序 嵌入式中 .elf文件 后缀为elf的文件Windows 下的 .exe可被共享的对象文件(Shared object file)动态库文件也即 .so 文件1.2 how generate elf file编译过程 预编译 编译 汇编 link -生成 elf1.3 elf 结构ELF文件由4部分组成分别是ELF头ELF header、程序头表Program header table、节Section和节头表Section header table。实际上一个文件中不一定包含全部内容而且它们的位置也未必如同所示这样安排只有ELF头的位置是固定的其余各部分的位置、大小等信息由ELF头中的各项值来决定。ELF头部(ELF_Header): 每个ELF文件都必须存在一个ELF_Header,这里存放了很多重要的信息用来描述整个文件的组织,如: 版本信息,入口信息,偏移信息等。程序执行也必须依靠其提供的信息。程序头部表(Program_Header_Table): 可选的一个表用于告诉系统如何在内存中创建映像,在图中也可以看出来,有程序头部表才有段,有段就必须有程序头部表。其中存放各个段的基本信息(包括地址指针)。节区头部表(Section_Header_Table): 类似与Program_Header_Table,但与其相对应的是节区(Section)。节区(Section): 将文件分成一个个节区每个节区都有其对应的功能如符号表哈希表等。段(Segment): 嗯…就是将文件分成一段一段映射到内存中。段中通常包括一个或多个节区2. readelfreadelf命令是gcc中的分析ELF文件的命令安装MINGW后会在其目录中发现 readelf.exeIn cmd window readelf -h Enterthen command windown echo all usageUsage: readelf option(s) elf-file(s)readelf --a file.elf Info.txtShow all info, it is equivalent to: -h -l -S -s -r -d -V -A -IInfo.txt can help user print information to txt file in current directory用该命令可以读出 elf 中所有信息Refernce:Linux Standard Base Linux标准库中 elf 官方文档https://refspecs.linuxbase.org/elf/elf.pdfrefspecs.linuxbase.org声明 文章源于作者个人兴趣研究只包含领域内公共信息不包含任何商业信息。