嵌入式系统相关文件说明

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

相关推荐
susplus20 小时前
【IMX6ULL Linux系统移植】SD卡分区 | uboot详解
linux·arm·u-boot
剑指offer.5 天前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm
susplus7 天前
【ARM 裸机开发 (IMX6ULL-mini)】I2C协议详解
嵌入式·arm·i2c
今年下半年9 天前
【运维】windows虚拟机安装arm(aarch64)服务器
运维·windows·arm·虚拟机·aarch64
额额额对了10 天前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
一直C10 天前
【ARM嵌入式开发】LCD液晶屏显示原理、色彩模式与显存地址映射详解
lcd·嵌入式·arm·寄存器·cortex-a7
susplus10 天前
【ARM 裸机开发 (IMX6ULL-mini)】PWM 背光调节与 GT9147 多点触摸驱动
lcd·arm·多点触控·pwm背光调节
凉、介11 天前
深入理解 ARM SCP Firmware 的 Event 与 Notification 机制
学习·scp·嵌入式·arm
susplus11 天前
【ARM 裸机开发 (IMX6ULL-mini)】SPI 协议与ADXL345 三轴加速度传感器
arm·spi·adxl345加速度传感器
susplus11 天前
【ARM 裸机开发 (IMX6ULL-mini)】RGB-LCD 驱动与时序详解
arm·rgb_lcd