嵌入式系统相关文件说明

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

相关推荐
独小乐2 天前
012.整体框架适配SDRAM|千篇笔记实现嵌入式全栈/裸机篇
c语言·汇编·笔记·单片机·嵌入式硬件·arm·gnu
独小乐2 天前
013.定时器之系统Tick实现|千篇笔记实现嵌入式全栈/裸机篇
linux·笔记·单片机·嵌入式硬件·arm
独小乐4 天前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
独小乐4 天前
007.GNU C内联汇编杂谈|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·汇编·单片机·嵌入式硬件·arm·gnu
惶了个恐5 天前
嵌入式硬件第九弹——ARM(5)
arm开发·单片机·嵌入式硬件·arm·硬件工程
惶了个恐11 天前
嵌入式硬件第七弹——ARM(4)
arm开发·stm32·单片机·嵌入式硬件·arm·硬件工程
誰能久伴不乏11 天前
给开发板装上嘴巴与耳朵:i.MX6ULL 裸机串口 (UART) 驱动终极指南
arm开发·c++·单片机·嵌入式硬件·arm
惶了个恐13 天前
嵌入式硬件第六弹——ARM(3)
arm开发·stm32·嵌入式硬件·arm
嵌入小生00715 天前
ARM --- 基础知识汇总
linux·嵌入式·arm·指令集
徐某人..15 天前
基于i.MX6ULL开发板与OV5640摄像头实现QT相机应用开发
qt·学习·arm