首先区分一下BootLoader和Monitor的概念。严格来说,BootLoader只是引导设备并且执行主程序的固件;而Monitor还提供了更多的命令行接口,可以进行调试、读写内存、烧写Flash、配置环境变量等。Monitor在嵌入式系统开发过程中可以提供很好的调试功能,开发完成以后,就完全设置成了一个BootLoader。所以,习惯上大家把它们统称为BootLoader。

目前,嵌入式系统中广泛应用的BootLoader有U-Boot、vivi、blob、armboot等。嵌入式系统中硬件的种类繁多,差距较大,而BootLoader是严重依赖于硬件而实现的。不同的CPU体系需要不同的BootLoader,即便是同一种体系结构,由于其它硬件设备配置的不同,如板卡硬件地址的分配、RAM芯片的型号等,也需要对BootLoader作一定的修改才能使用。因此,开发人员需针对不同的处理器和开发板,对BootLoader进行定制,来实现不同的功能。

Linux的开放源码引导程序及其支持的体系结构见表4.1。

表4.1 开放源码的Linux引导程序

BootLoader

描述

x86

ARM

PowerPC

LILO

Linux磁盘引导程序

GRUB

GNU的LILO替代程序

Loadlin

从DOS引导Linux

ROLO

从ROM引导Linux而不需要BIOS

Etherboot

通过以太网卡启动Linux系统的固件

LinuxBIOS

完全替代BUIS的Linux引导程序

BLOB

LART等硬件平台的引导程序

U-boot

通用引导程序

RedBoot

基于eCos的引导程序

下面,对嵌入式世界里几种常见的BootLoader做一简单介绍。

4.2.1  U-Boot介绍

U-Boot(Universal BootLoader)是遵循GPL条款的开放源码项目,是在PPCBoot以及ARMBoot的基础上逐步发展和演化而来,现在U-Boot已经能够支持PowerPC、ARM、X86、MIPS等体系结构的上百种开发板,已经成为功能最多、灵活性最强,并且开发最积极的开放源码的BootLoader。

U-Boot提供大量外设驱动,支持多个文件系统,附带调试、脚本、引导等工具,特别支持Linux,为板级移植做了大量的工作。

U-Boot源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅支持嵌入式Linux系统的引导,而且还支持NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS等嵌入式操作系统。

U-Boot可支持的主要功能如下:

· 系统引导:从FLASH中引导压缩或非压缩系统内核、支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统。

· 基本辅助功能:可灵活设置、传递多个关键参数给操作系统内核,适合系统在不同开发阶段的调试要求与产品发布,尤其对Linux支持最为强劲;支持开发板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好。

· 设备驱动:驱动的支持包括串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等。

· 上电自检功能:SDRAM、FLASH大小自动检测、SDRAM故障检测、CPU型号。

· 特殊功能:XIP(eXecute In Place,芯片内执行)内核引导,这样程序可以直接在Flash闪存内运行,不必再把代码读到RAM中。

U-Boot源码包的下载网站:http://sourceforge.net/project/u-boot。

4.2.2  vivi介绍

vivi是由韩国Mizi公司开发的一种BootLoader,专门针对ARM9处理器而设计,支持S3C2410x处理器。和所有的BootLoader一样,vivi有两种工作模式,即启动加载模式和下载模式。当vivi处于下载模式时,它为用户提供一个命令行接口,通过该接口可以使用vivi提供的一些命令。

vivi作为一种BootLoader,其运行过程分成两个阶段。

第一阶段的代码在vivi/arch/s3c2410/head.s中定义,大小不超过10 KB,它包括从系统上电后在0x00000000地址开始执行的部分。这部分代码运行在Flash中,它包括对S3C2410的一些寄存器、时钟等的初始化并跳转到第二阶段执行。

第二阶段的代码在vivi\init\main.c中,主要进行一些开发板初始化、内存映射和内存管理单元初始化等工作,最后会跳转到boot_or_vivi()函数中,接收命令并进行处理。

4.2.3  Blob介绍

Blob(BootLoader Object)是由Jan-Derk Bakker和Erik Mouw发布,专为StrongARM构架下的LART设计的BootLoader。

Blob支持SA1100的LART主板,但用户也可以自行修改移植。Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时10秒等待终端用户按下任意键而将Blob 切换到下载模式。如果在10秒内没有用户按键,则Blob继续启动Linux内核。

Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导Liunx,目前大部分S3C44B0板都用Blob修改移植后来加载uCLinux。

4.2.4  ARMboot介绍

ARMboot是一个ARM平台的开源固件项目,它严重依赖于PPCBoot。ARMboot支持的处理器构架有StrongARM,ARM720T,PXA250等,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的。ARMboot的目标是成为通用的、容易使用和移植的引导程序,非常轻便地运用于新的平台上。总得来说,ARMboot介于大、小型BootLoader之间,相对轻便,基本功能完备,缺点是缺乏后续支持。ARMboot发布的最后版本为ARMboot–1.1.0,2002年终止了ARMboot的维护,其发布网址为:http://sourceforge.net/projects/armboot。

4.2.5  RedBoot介绍

RedBoot是标准的嵌入式调试和引导解决方案,是一个专门为嵌入式系统定制的引导工具,最初由Redhat开发,是嵌入式操作系统eCos的一个最小版本,是随eCos发布的一个BOOT方案,是一个开源项目。现在交由自由软件组织FSF管理,遵循GPL。集BootLoader、调试、Flash烧写于一体。支持串口、网络下载、执行嵌入式应用程序。既可以用在产品的开发阶段(调试功能),也可以用在最终的产品上(Flash更新、网络启动)。

RedBoot支持的处理器构架有ARM、MIPS、PowerPC、x86等,是一个完善的嵌入式系统BootLoader。

转载自https://wenku.baidu.com/view/a767215e43323968001c9204.html

一些常见BootLoader介绍相关推荐

  1. 常见bootloader介绍

    一.BootLoader简介 在专用的嵌入式板子运行操作系统已经变得越来越流行.一个嵌入式系统从软件的角度看通常可以分为三个层次: 1. 引导加载程序.包括固化在固件(firmware)中的Boote ...

  2. Linux软件安装的几种常见方式介绍

    Linux上的软件安装有以下几种常见方式介绍 1. 二进制发布包 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 2. RPM包 软件已经按照redhat的包管理工具规范RPM进行打包发布, ...

  3. 什么意思中文翻译_os常见意思介绍

    os是一个英文的缩写在不同环境状态下表达的意思不一样的,比如在计算机中就是操作系统的意思,在聊天情景的时候就是内心独白的意思,下面来看看详细的os是什么意思介绍吧. os是什么意思 一.计算机中的解释 ...

  4. BootLoader 介绍 与 uboot 简介

    1 BootLoader 的介绍 1.1 BootLoader 的概念 BootLoader 的引入 如果它 能将噪作系统内核复制到内存中运行,无论从本地[比如Fh)还是从远端(比如通过网络), Bo ...

  5. 思科 Packet Tracer 中交换机的常见命令介绍

    思科 Packet Tracer 中交换机的常见命令介绍 配置方法 命令行界面 CLI 命令结构 基本 IOS 命令结构 上下文相关帮助功能 热键和快捷方式 常用: 设备名称 安全访问 配置密码 加密 ...

  6. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  7. 怎么用计算机打出cpdd,网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍...

    原标题:网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍 [海峡网] 随着网络的快速发展,抖音和微博这样的软件也是越来越火,因此很多流行语就随之诞生,特别是在抖音里,经常看到游戏相关的用 ...

  8. 单位用网站服务器介绍,常见的服务器有几种?常见服务器介绍

    对于接触服务器的新手来说,不太明白服务器有哪几种,那么,常见的服务器有几种?下面聚名域名新闻资讯站为您详解一下常见服务器有哪些? 常见的服务器有几种?常见服务器介绍 1.入门级服务器 这类服务器是最基 ...

  9. 家庭影院.液晶电视.常见接口介绍(一)

    家庭影院.液晶电视.常见接口介绍(一) 草木瓜 20080501 转载整理自网络 一.TV 接口 TV接口又称RF(Radio Frequency)射频输入,这是在电视机上最早出现的接口.TV接口的成 ...

最新文章

  1. Java程序员从笨鸟到菜鸟之(八十)细谈Spring(九)spring+hibernate声明式事务管理详解
  2. PPT 下载 | 神策数据孙超赟:多场景解读运营的价值、生存状态与解决方案
  3. 交换机二层交换和三层交换技术比较
  4. OpenKruise v0.8.0 版本:K8s 社区首个规模化镜像预热能力
  5. JS:a=b=c,a=?
  6. 【C语言进阶深度学习记录】十三 C语言中 ++和--操作符
  7. opencv 模板匹配_详细剖析模板匹配
  8. Java_spring_定时执行任务
  9. 教程-脚本之Python
  10. 只要一行代码,批量将Word转换为PDF!
  11. 错误总结:Exception in thread main java.lang.ExceptionInInitializerError
  12. 数据中心机房有哪些等级,国内外的评级标准?
  13. 关于“差强人意”成语的误用
  14. 2021年电工(初级)实操考试视频及电工(初级)理论考试
  15. 大数据在医疗领域的应用
  16. 【总结】华为交换机和锐捷交换机的syslog配置
  17. docker部署单机nacos
  18. Appium移动自动化
  19. 【物联网】MATLAB通过MQTT与阿里云和本地服务器建立连接
  20. ceph mon 故障登记

热门文章

  1. 修改agps服务器,华为 agps服务器设置
  2. 报错error:stray243in program
  3. 查看计算机远程端口,CMD下查3389远程端口
  4. flex布局详细教程
  5. linux命令 chmod 755的含义 及drwxr-xr-x 的含义
  6. 李彦宏:我是百度创始人 绝对有说话的权利
  7. 网站SEO小助手 V1.4版 简单轻松使用的SEO工具
  8. 人工智能历史、概念、算法与技术 概括与综述(一)
  9. 手机产品框架层设计: 两种主要的布局方式
  10. 大数据开发学习:NoSQL数据库入门