1 / 50
文档名称:

uboot启动代码详解.doc

格式:doc   大小:540KB   页数:50页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

uboot启动代码详解.doc

上传人:w447750 2018/6/25 文件大小:540 KB

下载得到文件列表

uboot启动代码详解.doc

相关文档

文档介绍

文档介绍:·1 引言
在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:
1. 引导加载程序。固化在固件(firmware)中的 boot 代码,也就是 Boot Loader,它的启动通常分为两个阶段。
2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。
3. 文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统,root fs。
4. 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows 和 MiniGUI 等。
引导加载程序是系统加电后运行的第一段软件代码。回忆一下 PC 的体系结构我们可以知道,PC 机中的引导加载程序由 BIOS(其本质就是一段固件程序)和位于硬盘 MBR 中的 OS Boot Loader(比如,LILO 和 GRUB 等)一起组成。BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader。Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像 BIOS 那样的固件程序(注,有的嵌入式 CPU 也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由 Boot Loader 来完成。比如在一个基于 ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址 0x00000000 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序。
·2 bootloader简介
应用程序
文件系统
操作系统内核
BootLoader
简单地说,Boot Loader (引导加载程序)就是在操作系统内核运行之前运行的一段小程序,它的作用就是加载操作系统,它是系统加电后运行的第一段软件代码。通过这段代码实现硬件的初始化,建立内存空间的映射图,为操作系统内核准备好硬件环境并引导内核的启动。如上图所示的那样在设备的启动过程中bootloader位于最底层,首先被运行来引导操作系统运行,很容易可以看出 bootloader是底层程序所以它的实现严重地依赖于硬件,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,一些功能强大、支持硬件环境较多的BootLoader也被广大的使用者和爱好者所支持,从而形成了一些被广泛认可的、较为通用的的bootloader实现。
Boot Loader 所支持的 CPU 和嵌入式板
每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。
Boot Loader 的安装媒介(Installation Medium)
系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。
下图1就是一个同时装有 Boot Loader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图:
图1 固态存储设备的典型空间分配结构
Boot Loader 的启动过程:单阶段(Single Stage)/多阶段(Multi-Stage)
通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage 1 和 stage 2 两部分。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面讨论。
2.

最近更新

统编版四年级下册第七单元《诺曼底号遇难记》.. 7页

设计质量管理及质量保证措施 28页

部编版语文四年级上册盘古开天地教学设计(优选.. 17页

高一化学课《物质的量》评课稿 8页

年度电动车充电器市场分析及竞争策略分析报告.. 75页

年度橱柜竞争策略分析报告 82页

让孩子自己学会处理 12页

人生百态7篇 12页

高一化学必修一第二章单元测试题(含答案及解析.. 5页

重庆市全国普通高考适应性测试(第三次)理科综.. 4页

2024年新员工自我介绍13篇(精品) 12页

2024年新员工入职感言范文(精选12篇) 39页

2024年新单位入职自我介绍范文 3页

过渡金属氧化物的电子结构与磁性计算的开题报.. 2页

辽河东部凹陷黄沙坨粗面岩油藏储层特征及开发.. 2页

输油管道工程建设对沿线地区土壤养分的影响中.. 2页

载脂蛋白B、载脂蛋白Al及二者比值与脑动脉弱样.. 2页

试题外国语学卷校创建第三批市中小学行为规范.. 3页

2024年文明观赛倡议书 21页

2024年文员工作计划范文集锦八篇 21页

跨专业领域研究音乐学的探索中期报告 2页

钢材物资供货方案投标方案 7页

大班科学活动《有趣的转动》说课稿 8页

商用飞机制造生产建设项目可行性研究报告 97页

中华苏维埃共和国 26页

国家开放大学学前教育社会实践表 11页

纸奶奶过生日 10页

浅谈如何当好基层副局长[1] 6页

神经系统常用术语 7页

石质文物保护中的微生物问题幻灯片 63页