一些常见BootLoader介绍
首先区分一下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介绍相关推荐
- 常见bootloader介绍
一.BootLoader简介 在专用的嵌入式板子运行操作系统已经变得越来越流行.一个嵌入式系统从软件的角度看通常可以分为三个层次: 1. 引导加载程序.包括固化在固件(firmware)中的Boote ...
- Linux软件安装的几种常见方式介绍
Linux上的软件安装有以下几种常见方式介绍 1. 二进制发布包 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 2. RPM包 软件已经按照redhat的包管理工具规范RPM进行打包发布, ...
- 什么意思中文翻译_os常见意思介绍
os是一个英文的缩写在不同环境状态下表达的意思不一样的,比如在计算机中就是操作系统的意思,在聊天情景的时候就是内心独白的意思,下面来看看详细的os是什么意思介绍吧. os是什么意思 一.计算机中的解释 ...
- BootLoader 介绍 与 uboot 简介
1 BootLoader 的介绍 1.1 BootLoader 的概念 BootLoader 的引入 如果它 能将噪作系统内核复制到内存中运行,无论从本地[比如Fh)还是从远端(比如通过网络), Bo ...
- 思科 Packet Tracer 中交换机的常见命令介绍
思科 Packet Tracer 中交换机的常见命令介绍 配置方法 命令行界面 CLI 命令结构 基本 IOS 命令结构 上下文相关帮助功能 热键和快捷方式 常用: 设备名称 安全访问 配置密码 加密 ...
- Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)
Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩) ...
- 怎么用计算机打出cpdd,网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍...
原标题:网络语cpdd是什么梗啥意思 cpdd出处来源哪里常见用法介绍 [海峡网] 随着网络的快速发展,抖音和微博这样的软件也是越来越火,因此很多流行语就随之诞生,特别是在抖音里,经常看到游戏相关的用 ...
- 单位用网站服务器介绍,常见的服务器有几种?常见服务器介绍
对于接触服务器的新手来说,不太明白服务器有哪几种,那么,常见的服务器有几种?下面聚名域名新闻资讯站为您详解一下常见服务器有哪些? 常见的服务器有几种?常见服务器介绍 1.入门级服务器 这类服务器是最基 ...
- 家庭影院.液晶电视.常见接口介绍(一)
家庭影院.液晶电视.常见接口介绍(一) 草木瓜 20080501 转载整理自网络 一.TV 接口 TV接口又称RF(Radio Frequency)射频输入,这是在电视机上最早出现的接口.TV接口的成 ...
最新文章
- Java程序员从笨鸟到菜鸟之(八十)细谈Spring(九)spring+hibernate声明式事务管理详解
- PPT 下载 | 神策数据孙超赟:多场景解读运营的价值、生存状态与解决方案
- 交换机二层交换和三层交换技术比较
- OpenKruise v0.8.0 版本:K8s 社区首个规模化镜像预热能力
- JS:a=b=c,a=?
- 【C语言进阶深度学习记录】十三 C语言中 ++和--操作符
- opencv 模板匹配_详细剖析模板匹配
- Java_spring_定时执行任务
- 教程-脚本之Python
- 只要一行代码,批量将Word转换为PDF!
- 错误总结:Exception in thread main java.lang.ExceptionInInitializerError
- 数据中心机房有哪些等级,国内外的评级标准?
- 关于“差强人意”成语的误用
- 2021年电工(初级)实操考试视频及电工(初级)理论考试
- 大数据在医疗领域的应用
- 【总结】华为交换机和锐捷交换机的syslog配置
- docker部署单机nacos
- Appium移动自动化
- 【物联网】MATLAB通过MQTT与阿里云和本地服务器建立连接
- ceph mon 故障登记