ARM Linux启动过程解析
需积分: 0 30 浏览量
更新于2024-07-09
收藏 139KB PDF 举报
"ARM Linux 启动过程分析文档,作者张俊岭,基于AT91SAM9260EK板,使用Linux内核版本2.6.21。文档详细介绍了Linux内核在ARM架构下的启动流程,包括压缩内核和非压缩内核映像的生成步骤。"
在嵌入式系统中,尤其是基于ARM架构的Linux系统,启动过程是理解整个系统运行机制的关键部分。本文档详细阐述了ARMLinux的启动流程,主要分为两个关键环节:非压缩内核映像和压缩内核映像的生成及执行。
首先,非压缩内核映像是一个未经压缩的、可以直接执行的Linux内核代码。它由`makeImage`命令生成。这个过程涉及以下步骤:
1. 内核源代码编译链接后,会在顶层目录下生成一个ELF格式的文件`vmlinux`。
2. 使用`arm-linux-objcopy`工具将`vmlinux`转换为二进制格式的`Image`文件,这是非压缩内核映像。
其次,压缩内核映像则是为了节省存储空间而设计的。它通过`makezImage`命令生成,步骤如下:
1. 使用`gzip`工具对非压缩内核二进制映像`arch/arm/boot/Image`进行压缩,得到`piggy.gz`文件。
2. 在`arch/arm/boot/compressed/`目录下,`piggy.s`、`head.S`和`vmlinux-lds`等文件被编译链接,生成一个包含解压代码的ELF格式的`vmlinux`文件。
3. 最后,再次使用`arm-linux-objcopy`将此`vmlinux`转换为二进制格式的`zImage`,这是压缩内核映像。
启动过程中,压缩内核映像会先执行解压缩代码,释放出非压缩内核映像,然后继续执行非压缩内核的代码,从而完成系统的启动。
理解这一启动过程对于调试、优化以及定制嵌入式Linux系统至关重要,因为它涉及到硬件初始化、内存管理、设备驱动等核心操作。同时,熟悉内核映像的生成方法也有助于在有限的存储资源下,有效管理和配置内核映像,以适应不同的嵌入式应用场景。
718 浏览量
126 浏览量
203 浏览量
1771 浏览量
268 浏览量
220 浏览量
196 浏览量
313 浏览量
2024-01-15 上传
qoo12
- 粉丝: 1
- 资源: 86
最新资源
- article-api:使用Sails的文章API
- maurooviedo.com:使用vue.js和早午餐建立的个人网站博客
- Web网站实现用户的增删改查服务.zip
- nupurmurthy.github.io
- 维宏四轴五轴水切割V10用户手册-R1.rar
- 伺服控制器28335 sch.rar
- React-TS-Demo
- pyiron_atomistics:pyiron_atomistics-用于计算材料科学中原子模拟的集成开发环境(IDE)
- 和利时 中央空调专用PLCe.rar
- mysql-5.6.9-rc-winx64.zip
- 自动泊车代码Matlab-ANPR:ANPR是一种软件,可在收费站捕获车辆的图像,然后从图像中提取车辆的车牌,并执行OCR以获取车牌号,以进行
- holbertonschool-web_front_end
- NETCFv35.Messages.zh-CHT.wm.rar
- 聊天空间
- SIMATIC WinCC v7 正版有“礼”.rar
- JobScheduler