嵌入式Linux作业Bootloader.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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的完整替代品,不过

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档