嵌入式系统相关文件说明

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

相关推荐
凉、介8 小时前
Armv8 原子性:体系结构保证与编程语义
linux·学习·嵌入式·arm·原子操作·atomic
Dlrb12112 天前
ARM---IMX6ULL的LCD模块简介及LCD驱动程序的编写
arm开发·lcd·arm·imx6ull·显存·像素
Hi202402173 天前
Cortex-A53 + GIC700 + Boot BRAM Vivado 全流程复现
arm·fpga·vivado
海浪鱼4 天前
Cortex M7-TRM 翻译系列之ITM(十二)
arm·m7
Dlrb12117 天前
ARM---I2C协议时序详解以及IMX6ULL使用I2C协议与AT24C02,LM75A芯片通信详解与示例代码
嵌入式硬件·arm·lm75a·i2c协议·at24c02·i2c时序
Dlrb12119 天前
ARM---IMX6ULL定时器详解与应用:EPIT与GPT定时器,高精度延时函数
arm开发·gpt·arm·定时器·epit·高精度延时
Dlrb121110 天前
ARM -IMX6ULL的中断系统、GIC、CP15协处理器详细讲解
arm开发·arm·imx6ull·中断·gic·cp15·协处理器
Dlrb121110 天前
ARM---I.MX6ULL时钟系统详解、时钟树、系统时钟配置等
单片机·嵌入式硬件·arm·imx6ull·pll·时钟树·cortex-a7
m0_7156467612 天前
20260720
linux·arm
Dlrb121112 天前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7