嵌入式Linux移植和Uboot(一):Bootloader介绍,U-boot介绍(特点,目录结构)

一、什么是Bootloader

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。

Bootloader,不同的处理器架构都有不同的BootloaderBootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。

反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

对于Bootloader可总结以下四点:

  1. Bootloader是硬件启动时执行的引导程序,是运行操作系统的前提;
  2. Bootloader是在操作系统内核或用户应用程序运行之前运行的一段代码;
  3. 在嵌入式系统中,整个系统的初始化和加载任务一般由Bootloader来完成;
  4. 对硬件进行相应的初始化和设定,最终为操作系统准备好环境。

二、Bootloader的特点

Bootloader不属于操作系统,一般采用汇编语言和C语言开发。需要针对特定的硬件平台编写。在移植过程时,首先为开发板移植Bootloader。Bootloader不但依赖于CPU的体系架构,而且依赖于嵌入式系统板级设备的配置。可总结为以下三点:

  1. Bootloader运行通常分为两个阶段。
  2. Bootloader独立于操作系统。
  3. Bootloader不仅依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。

三、Bootloader的执行模式

自启动模式: 在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,该模式下,Bootloader按照预先设定的命令自动运行,整个过程并没有用户的介入。这种模式是Bootloader的正常工作模式,因此在嵌入式产品发布时,Bootloader必须工作在这种模式下

交互模式: 在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发板(Host)上下载内核映射和根文件系统映像等待RAM中。可以被Bootloader写到目标机上的固态存储媒介质中,或者直接进入系统的引导。也可以通过串口接收用户的指令。该模式下,Bootloader通过串口和PC端通信,接收用户的命令。启动加载模式通常用于第一次烧写内核与根文件系统到固态存储媒质时或者以后的系统更新时使用;下载模式多用于开发人员在前期开发的过程中,工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。

四、一些bootloader介绍

在这里插入图片描述

Red Bootloaders

Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等,是一个完善的嵌入式系统Boot Loader 。

Redboot是在ECOS的基础上剥离出来的,继承了ECOS的简洁、轻巧、可灵活配置、稳定可靠等品质优点。它可以使用X-modem或Y-modem协议经由串口下载,也可以经由以太网口通过BOOTP/DHCP服务获得IP参数,使用TFTP方式下载程序映像文件,常用于调试支持和系统初始化(Flash下载更新和网络启动)。Redboot可以通过串口和以太网口与GDB进行通信,调试应用程序,甚至能中断被GDB运行的应用程序。Redboot为管理FLASH映像,映像下载,Redboot配置以及其他如串口、以太网口提供了一个交互式命令行接口,自动启动后,REDBOOT用来从TFTP服务器或者从Flash下载映像文件加载系统的引导脚本文件保存在Flash上。当前支持单板机的移植版特性有 :

  • 支持ECOS,Linux操作系统引导
  • 在线读写Flash
  • 支持串行口kermit,S-record下载代码
  • 监控(minitor)命令集:读写I/O,内存,寄存器、 内存、外设测试功能等

Red Bootloaders相关网站:http://sourceware.org/redboot/

ARM Bootloaders

Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。支持arm720, arm920, arm926, CortexA8, sa1100, xscale。

ARMboot的目标是成为通用的、容易使用和移植的引导程序,非常轻便地运用于新的平台上。ARMboot是GPL下的ARM固件项目中唯一支持Flash闪存,BOOTP、DHCP、TFTP网络下载,PCMCLA寻线机等多种类型来引导系统的。特性为:

  • 支持多种类型的FLASH;
  • 允许映像文件经由BOOTP、DHCP、TFTP从网络传输;
  • 支持串行口下载S-record或者binary文件;
  • 允许内存的显示及修改;
  • 支持jffs2文件系统等

(1)U-Boot是ARM bootloader标准
(2)armboot 加入到 ppcboot 形成了 u-boot

ARM Bootloaders相关网站:http://armboot.sourceforge.net/

Blob

blob是LART工程使用的bootloader,移植到多个ARM平台上

Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux内核。其基本功能为 :
初始化硬件(CPU速度,存储器,中断,RS232串口)

  • 引导Linux内核并提供ramdisk;
  • 给LART下载一个内核或者ramdisk;
  • 给FLASH片更新内核或者ramdisk;
  • 测定存储配置并通知内核;
  • 给内核提供一个命令行 [5] 。

Blob相关网站:http://www.lart.tudelft.nl/lartware/blob

U-boot介绍

u-boot(Universal Boot Loader)是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。遵循GPL条款。8xxROM 、PPCBOOT、Armboot逐步发展演化而来。
在这里插入图片描述

U-Boot工程简介

U-Boot提供两种操作模式:启动加载(Boot loading)模式和下载(Downloading)模式,并具有大型Boot Loader的全部功能。主要特性为:

  • SCC/FEC以太网支持;
  • BOOTP/TFTP引导;
  • IP,MAC预置功能;
  • 在线读写FLASH,DOC, IDE,IIC,EEROM,RTC;
  • 支持串行口kermit,S-record下载代码;
  • 识别二进制、ELF32、pImage格式的Image,对Linux引导有特别的支持;
  • 监控(minitor)命令集:读写I/O,内存,寄存器、内存、外设测试功能等;
  • 脚本语言支持(类似BASH脚本);
  • 支持WatchDog,LCD logo,状态指示功能等。
    现在U-Boot已经能够支持PowerPC、ARM、X86、MIPS体系结构的上百种开发板,已经成为功能最多、灵活性最强并且开发最积极的开放源码Bootloader。目前仍然由DENX的Wolfgang Denk维护。

U-Boot的源码包可以从sourceforge网站下载,还可以订阅该网站活跃的U-Boot Users邮件论坛,这个邮件论坛对于U-Boot的开发和使用都很有帮助。

U-Boot软件包下载网站:http://sourceforge.net/project/u-boot
U-Boot邮件列表网站:http://lists.sourceforge.net/lists/listinfo/u-boot-users/
DENX相关的网站:http://www.denx.de/re/DPLG.html

U-boot的特点

  • 代码结构清晰、易于移植(见程序结构)
  • 支持多种处理器体系结构(见程序结构cpu目录)
  • 支持众多参考板(目前官方包中有200多种,见程序结构board目录)命令丰富、有监控功能
  • 支持网络协议、USB、SD等多种协议和设备
  • 支持文件系统
  • 更新较活跃,使用者多,有助于解决问题

U-Boot目录结构

  1. 与平台相关的目录结构
    board, cpu, lib_arm, include…

  2. 与平台无关的目录结构
    common, net, fs, drivers…

  3. 工具和文档
    tools, doc

以下对目录结构一一介绍:
在这里插入图片描述
在这里插入图片描述

U-boot命令介绍

请关注后文,接上。。。。。

发布了23 篇原创文章 · 获赞 37 · 访问量 4526

猜你喜欢

转载自blog.csdn.net/ywsydwsbn/article/details/105156057