- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linux作业Bootloader嵌入式Linux作业Bootloader
目录
1.嵌入式Linux的Bootloader的概述 1
1.1 Bootloader的概念和功能 2
1.2 Bootlaoder的不统一性/不通用性 2
2.嵌入式Linux的常见Bootloader简介 3
3.Bootloader的启动与加载 5
4.Bootloader的移植简介............................................................6
4.1 U-Boot工程结构分析 7
4.2 U-Boot总体工作流程 7
4.3移植U-Boot到开发板 9
5.嵌入式Linux的Bootloader-源代码的分析 10
5.1定义入口 11
5.2设置异常向量 11
5.3设置CPU的模式为SVC模式 11
5.4关闭看门狗,禁掉所有中断,设置CPU的频率 11
5.5建立stack空间 13
5.7命令配置 15
5.8 u-boot 的移植过程 23
5.9修改Makefile 23
5.10在 board 子目录中建立teach2410 23
6.参考的资料 23
嵌入式Linux的Bootloader
1.嵌入式Linux的Bootloader的概述
引入:
对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫做BootLoader统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫做BootLoader统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫做BootLoader
对比:
通过PC的体系结构我们可以知道,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。
BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。
引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中然后跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像BIOS那样的固件程序。
因此整个系统的加载启动任务就完全由BootLoader来完成。
比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时都从地址0始执行.而在这个地址处安排的通常就是系统的BootLoader程序。
1.1 Bootloader的概念和功能
BootLoader 是一段汇编代码,存放在MBR 中,它的主要作用就是将操作系统启动代码读入内存。
从功能上看,Bootloader 就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。
1.2 Bootlaoder的不统一性/不通用性
通常,BootLoader 是依赖于硬件而实现的,特别是在嵌入式领域,为嵌入式系统建立一个通用的BootLoader 是很困难的。当然,我们可以归纳出一些通用的概念来,以便我们了解特定BootLoader 的设计与实现。当前在嵌入式Linux 系统中,有了一些流行和通用的Bootloader 框架。现实开发中,我们都是采用现有的BootLoader 进行修改。
2.嵌入式Linux的常见Bootloader简介
每种CPU 体系结构都有不同的 BootLoader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。
支持Linux的Bootloader比较多,发展到2010年,出现了一些必然的结果,有些Bootloader已经消失,有些Bootloader被取代,有些Bootloader被合并,有些虽然在发展,不过已退居一个偏僻的角落。现在就主流的或者说应用的有点广泛的Bootloader如下所示。 GRUB/GRUB2: GRUB是主要针对x86系列处理器的Bootloader,同时支持服务器级PowerPC/MIPS处理器,曾经作为LILO(原Linux + x86的主流Bootloader)的后继者出现,现在终于如愿,LILO已停止发展,GRUB一家独大,着也正常,毕竟LILO不如GRUB的功能强劲。现在GRUB已经发展到第二代GRUB2,而且作为GNU的项目,后续的发展不成问题。 CoreBoot: 曾经叫做LinuxBIOS,被称为x86 BIOS的完整替代品,不过
您可能关注的文档
- 山东省高考题型 解题技法总论.doc
- 山东省高校体育教师基本功大赛竞赛规程.doc
- 山东省青州市2011—2012学年度七年级历史第二学期学业水平模拟检测题二_人教新课标版(含答案).doc
- 山东省高密市银鹰文昌中学八年级生物上册《第四章 生物的遗传和变异》复习课学案.doc
- 山东科技大学学生专利研究及申请资助办法.doc
- 山东科技大学学生专利研究及申请资助 项目申请书.doc
- 山东科技大学本科生毕业设计要求(下发学生 ).doc
- 山东科技大学泰山科技学院本科毕业设计(论文)开题报告 地质工程10-1 高鹏辉 1041030107 (最终版).doc
- 山东聊城金泰节能科技有限公司-节能报告.doc
- 山东移动教育网站简介.doc
文档评论(0)