嵌入式系统相关文件说明

.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文件每行的末尾都会有校验和,烧录器在接受过程中可以验证数据是否损害。

相关推荐
eggcode1 天前
【Qt学习】Linux(ARM架构)在线安装Qt6.x
linux·qt·学习·arm
amuzhichuang4 天前
阿姆智创ARM-3568A工控核心板,协作机械臂驱动智造升级
arm·瑞芯微·工控核心板
凉、介6 天前
深入理解 ARMv7-A|异常/中断处理
笔记·学习·嵌入式·arm
谷公子的藏经阁6 天前
Arm Cortex-M programmer model
arm·cpu·architecture·cortex-m
楼兰公子10 天前
嵌入式 Linux U-Boot 完整启动流程深度解析
arm·uboot
底层开发智库11 天前
无需硬件开发板,从零构建并运行ARM aemfvp-a-rme软件栈
arm开发·arm
黑猫学长呀13 天前
存储宝典第1篇:Nand SCA是什么
arm开发·arm·nand·存储芯片·nandflash·onfi
凉、介13 天前
Armv8-A virtualization 笔记 (二)
笔记·学习·嵌入式·arm·gic
代码讲故事14 天前
mac电脑上docker突然无法运行,不停的出现弹框,“com.docker.vmnetd”将对你的电脑造成伤害。附国内不同芯片高速下载地址,下载直接运行。
macos·docker·容器·arm·mac·intel·下载
你刷碗15 天前
嵌入式UART printf 数据处理方法
c语言·单片机·嵌入式硬件·arm