- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
uboot启动代码详解
This model paper was revised by the Standardization Office on December 10, 202()
?1引言
在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux 系统从软件的角度看通常可以分为四个层次:
1.引导加载程序。固化在固件(firmware)中的boot代码,也就是Boot Loader,它的 启动通常分为两个阶段。
内核。特定于嵌入式板子的定制内核以及内核的启动参数。
文件系统。包括根文件系统和建立于Flash内存设备之上文件系统,root fs。
用户应用程序。特定于用户的应用程序。有时在用户应用程存和内核层之间可能还会包 括一个嵌入式图形用戸界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。
引导加载程序是系统加电后运行的第一段软件代码。回忆一下PC的体系结构我们可 以知道,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中 的OS Boot Loader (比如,LILO和GRUB等)一起组成。BIOS在完成硬件检测和资源 分配后,将硬盘MBR中的Boot Loader读到系统的RAM中,然后将控制权交给OS Boot Loadero Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后 跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也 会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由Boot Loader来 完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从 地址0开始执行,而在这个地址处安排的通常就是系统的Boot Loader程 序。
? 2 bootloader 简介
应用程序
文件系统
操作系统内核
BootLoader
简单地说,Boot Loader (引导加载程序)就是在操作系统内核运行之前运行的一段 小程序,它的作用就是加载操作系统,它是系统加电后运行的第一段软件代码。通过这段 代码实现硬件的初始化,建立内存空间的映射图,为操作系统内核准备好硬件环境并引导 内核的启动。如上图所示的那样在设备的启动过程中bootloader位于最底层,首先被运 行来引导操作系统运行,很容易可以看出boot loader是J戻层程序所以它的实现严重地依 赖于硬件,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader儿 乎是不可能的。尽管如此,一些功能强大、支持硬件环境较多的BootLoader也被广大的 使用者和爱好者所支持,从而形成了一些被广泛认可的、较为通用的的bootloader实 现。
Boot Loader所支持的CPU和嵌入式板
毎种不同的CPU体系结构都有不同的Boot Loadero有些Boot Loader也支持多种 体系结构的CPU.比如U-Boot就同时支持ARM体系结构和MIPS体系结构。除了依赖 于CPU的体系结构外,Boot Loader实际上也依赖于具体的嵌入式板级设备的配置这 也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种CPU而构建的,要想 让运行在一块板子上的Boot Loader程序也能运行在另一块板子上,通常也都需要修改 Boot Loader的源程序。
Boot Loader 的安装媒介(Installation Medium)
系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指 令。比如,基于ARM7TDMI core的CPU在复位时通常都从地址0它的第一 条指令。而基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM. EEPR0M或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具体完成哪些任务将在下 面讨论。
Boot Loader 的操作模式(Operation
您可能关注的文档
- 14起工厂典型事故案例分析报告.docx
- 15秋学期《服务管理》在线作业.docx
- 16米以上人工挖孔桩安全专项方案.docx
- 19MWp屋顶分布式光伏发电项目实施计划方案计划书.docx
- 20兆瓦农光互补分布式光伏发电项目可行性实施报告.docx
- 24点计算要领技巧.docx
- 35吨循环流化床锅炉运行操作规程完整.docx
- 2013年监护呼吸机麻醉机等参考价格.docx
- 2014年—2018年全国卷名句名篇默写题汇总.docx
- 2014年度广州市地下铁道总公司信用评级报告.docx
- 陕西省西安市2022-2023学年七年级下学期语文期末试卷(含答案).pdf
- 山东省东营市广饶县2024届中考一模数学试卷(含答案).pdf
- 5.12护士节护理学基础知识竞赛试题及答案.pdf
- 2024年江苏省泰州市海陵区九年级(下)中考一模英语试卷(含详细答案解析).pdf
- 2024年浙江省杭州市临安区中考英语一模试卷(含详细答案解析).pdf
- 2024年浙江省杭州市西湖区中考一模英语试题(含详细答案解析).pdf
- 广东省佛山市2022-2023学年七年级下学期语文期末试卷(含答案).pdf
- 检验检测机构内审、RBT214及管理层考核试.pdf
- 2023届上海市初三质量监测(一)化学试题试卷含解析.pdf
- 2022-2023学年孝感市八校联谊模拟考试英语试题试卷含解析.pdf
文档评论(0)