嵌入式系统相关文件说明

.c和.he主要为C源代码,这部分主要是使用C语言编程的代码以及头文件信息。

.i文件是C语言源文件经过预处理器处理后的输出文件。主要处理#开头的指令:处理#开头的宏定义 ,即宏展开;文件包含 ,即将#include文件内容插入进来;条件编译 ,即#ifdef,#if等条件中的内容;删除注释,添加行编号等。

.s主要为汇编代码,这部分在嵌入式中常见为启动代码,即start.S文件

.o为目标文件,每个.c或.S都可以通过编译器生成对应的目标文件,该目标文件是二进制中间文件,这些文件里的内容主要包含机器码,数据,符号表,重定位信息以及调试信息

.a文件是静态库文件,该静态库文件是多个.o文件的归档(archive),其本质就是一个打包集合,将一组相关功能封装成一个文件,常见的有SBIST、外设驱动、数据库函数等。

.ld文件是连接脚本文件,控制链接器将.a和.o文件的段进行合并并输出文件,并指定内存布局。

.map文件是内存映射文件,主要包含内存布局总览,输出文件和输出段之间的关系,全局符号的终止定制以及未使用的段,地址填充信息等。

.elf是链接器输出的可执行文件,是调试和仿真的重要文件,主要包括了完整的程序加载地址和入口,合并之后的数据段,代码段,只读数据段等,符号表等信息

.bin文件是elf文件的输出文件,纯二级制文件,是连续的,不带任何地址信息的字节流,不包含地址信息,需要烧录器知道烧录的起始位置。

.hex文件是elf文件的输出文件,是一种文本文件,文件中的每一行都记录了目标地址,烧录器会自动按照地址进行写入。同时hex文件每行的末尾都会有校验和,烧录器在接受过程中可以验证数据是否损害。

相关推荐
zhangzhangkeji5 小时前
stm32 笔记 - 2:库函数方式的初始化,项目的文件结构
stm32·arm
zhangzhangkeji9 小时前
stm32 笔记 - 1:, 环境与项目搭建, 寄存器方式点灯
arm
T1mzhou1 天前
ARM64 Linux 6.10 内核驱动(13):bus.c / driver.c 总线两张表,驱动怎么挂上去
linux·服务器·c语言·arm开发·arm
zhangzhangkeji18 天前
笔记 34 - 7 :网卡 DM9000AE; uboot 网络协议栈,里的函数调用流程
arm
zhangzhangkeji21 天前
笔记 30 - 4 :rootfs 配置文件定制,etc / profile,与挂载测试
arm
zhangzhangkeji21 天前
笔记 34 - 3 :网卡 DM9000AE;16 位下的引脚功能,引脚映射到 SROMC,到 GPIO
arm
深念Y24 天前
订阅管理及节点过滤实践(技术笔记)
linux·网络·arm·优化·日志·工具·soc
zhangzhangkeji25 天前
笔记 28 : linux 里 Kconfig 语法详解
arm
zhangzhangkeji1 个月前
笔记 25 - 1 :linux 驱动模块移植,obj-y、obj-m,命令 dmesg,开启已有的硬件驱动
arm
zhangzhangkeji1 个月前
笔记 25 - 2 :linux 驱动模块移植,创建自定义驱动(编译为模块),调整 shell 里字体大小,
arm