我们可以把可执行文件分为2种情况:存放态和运行态
1.存放态:可执行文件经过烧到存储介质上(flash或磁盘)的分布,此时可执行文件通常有2部分组成,代码段和数据段,代码段又分为可执行代码段 (.text)和只读数据段(.rodata),数据段可以分为初始化数据段(.data)和未初始化代码段(.bss),如下:
+-------------+-----------
| .bss | (ZI)
+-------------+-- 数据段
| .data | (RW)
+-------------+-----------
| .rodata |
|_____________| 代码段(RO)
| .text |
+-------------+-----------
.text代码段,.rodata只读数据段,.bss是未初始化全局变量段, .data是初始化被赋值的全局变量
2.运行态:可执行文件经过装载后就变成为运行态,
当可执行文件装载后, 在RAM中的分布如下:
| ... |
+-------------+-- ZI段结束地址
| ZI 段 |
+-------------+-- ZI段起始地址
| 保留区2 |
+-------------+-- RW段结束地址
| RW 段 |
+-------------+-- RW段起始地址
| 保留区1 |
+-------------+-- RO段结束地址
| RO 段 |
+-------------+-- RO段起始地址
ZI段主要是未初始化数据,RW主要是自动变量,RO主要是代码段。
elf文件
elf文件是UNIX系统实验室开发的,主要包括可执行文件,可充分定位文件与可共享库文件等。按功能分又可分为链接文件和可执行文件。一个elf文件可以使用binutils工具集里面的readelf来查看,比如readelf -h u-boot查看u-boot文件头。
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 52 (bytes into file)
Start of section headers: 1835468 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 4
Size of section headers: 40 (bytes)
Number of section headers: 25
Section header string table index: 22
上一篇:ARM微处理器的指令集概述(三)—— .word的含义
下一篇:uboot-2011.12移植到S3C2440(序二)—— binutils二进制工具集与u-boot
推荐阅读最新更新时间:2024-11-17 10:59
推荐帖子
- 教你IC翻新货识別法
- 大家如果购买芯片有三五十片的量,最好找代理公司或其分销商去购买,或者找些好的交易平台,像香港电子库存网和中国电子市场网,都有个买家服务部,可以打电话过去,让他们推荐好的,优势供应商,而不要去一般“统货”柜台拿货,一般什么都作的(所谓统货)柜台上的现货基本上是翻新货或旧货,而且他们看人报价,行家或熟人他们大多不敢太过分,但普通人他们还是能蒙就蒙、能骗则骗了,这已是比较普遍的现象,大家要多留神。如果你在这样的柜台上拿货,你一定要先“货比三家”,然后一定要讲清楚,要包换的。另外,成交
- ESD技术咨询 安防电子
- (转贴)[电路设计心得] 一个硬件高手的设计经验分享
- 本文转自AMOBBS的帖子,有很好参考意义:原帖子地址:http://www.amobbs.com/thread-5470101-1-1.html一个硬件高手的设计经验分享一:成本节约现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧点评:市场上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只有1、1.5、2.2、3.3、4.
- dingzy_2002 Microchip MCU
- 推荐一种高速ad芯片
- 想自己做个示波器,用ads830采样,东西买回来了,发现ADS830引脚间距太小,不在我的能力范围之内,(我是自己腐蚀电路板,技术粗糙),就放在哪儿一直没敢下手,大家帮忙推荐一种和ADS830差不多的芯片,好焊接的哈,DIP封装的最好当然价格不能太贵了,我的要求也不是很高,只要和ads830差不多就行差一点也可以。。。。。谢谢了哈推荐一种高速ad芯片兄弟,你可以这样,看看ads830是啥样封装的,买那种万能贴片版,焊在上面,外围引脚都给你引出来了,拿线连就好了。其他的ad芯片
- jialaolian DIY/开源硬件专区
- 线束绝缘电阻测试,聪明的你会选哪种方式?
- 全功能+批量化线束测试,和单一功能+费时费力线束测试,聪明的你会选哪种方式?线束绝缘电阻测试,聪明的你会选哪种方式?
- aigtekatdz 测试/测量
- 笔记本电池长期不用后,没有输出电压,锁板了,大神们有解救办法吗?
- 华硕笔记本电池长期不用后,没有输出电压,锁板了,大神们有解救办法吗?笔记本电池长期不用后,没有输出电压,锁板了,大神们有解救办法吗?既然已经拆开那就好办。先逐节测试一下各电芯的电压,对端电压过低的电芯用两根飞线引出稍充一下电即可。充电甚至可用其它锂电池甚至干电池,三点几伏特的直流电都可以,短时充一下就好。待保护板解锁后安装回笔记本电脑,然后即可正常充电。先试试能不能充电,长期放后一般可能有1节或N节电芯损坏,可以查找一下。充一阵电,看看,俗称饿死了你这个是9个18650
- soyoco 以拆会友
- 考考你的工程实践能力!设计室内路径记录仪
- “RIGOL杯电子系统设计大赛”的着眼点在于培养大学生的工程实践能力,让学生们从实际入手,掌握更多工作中需要的知识和技能。这些题目也欢迎有经验的大虾们集思广益,参与设计!RIGOL电子系统设计大赛介绍http://rigol.eitp.com.cn/题目五:设计室内路径记录仪设计一个室内路径记录仪,不依赖卫星导航系统,以一个初始点为原点,实时记录和显示在室内行动的轨迹。在原点为坐标参照,每隔≤0.2s以(X,Y,Z)格式记录一个当前所处坐标位置。同时记录采样数据的日期和时间。能
- EEWORLD社区 测试/测量
设计资源 培训 开发板 精华推荐
- LT6656AIDC-4.096、4.096V 升压输出电流电压基准的典型应用
- 用于高亮度 LED 的 STCS1 恒流控制器的评估板
- AM2DM-2405DH60-NZ ±5 Vout、2W 双路输出 DC-DC 转换器的典型应用
- 【物联网】鸿蒙物联网智能WIFI开关
- DC1710A-B,使用 LTC5591 的演示板,1.3 至 2.3GHz,IF=190MHz,+/-30MHz 带宽,双路高动态范围下混频器
- 使用微控制器的简单温度测量系统
- NSVC2020JBT3G 350mA LED串PWM调光典型应用
- LT8315IFE 12V 高输入电压隔离反激式转换器的典型应用电路
- DC718C,基于 USB 的 Windows PC 托管数字数据采集系统,ADC 演示板
- VD6283 分线板 6 通道环境光传感器,具有先进的光闪烁提取功能