最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

刷机工具Odin3v1.85中的BOOTLOADER详解,三星I9000GalaxyS安卓论坛_百

IT圈 admin 20浏览 0评论

2024年11月2日发(作者:肇绿夏)

刷机工具Odin3v1.85中的BOOTLOADER详解,三星

I9000GalaxyS安卓论坛

本帖最后由 czczyx 于 2011-11-2 04:21 编辑

看到有机油问:

刷机工具Odin3 v1.85中的BOOTLOADER是什么?

百度了一下资料,与各位机油分享。

简单地说,BootLoader就是在操作系统内核运行之前运行的一段

小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间

映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调

用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像

BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启

动程序),因此整个系统的加载启动任务就完全由BootLoader来完

成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电

或复位时通常都从地址0x00000000处开始执行,而在这个地址处安

排的通常就是系统的BootLoader程序。

【简介】

在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。

一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:

1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可

选),和BootLoader两大部分。

2、 Linux内核。特定于嵌入式板子的定制内核以及内核的启动参

数。

3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件

系统。通常用ramdisk来作为rootfs。

4、 用户应用程序。特定于用户的应用程序。有时在用户应用程

序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入

式GUI有:MicroWindows和MiniGUI等。

引导加载程序是系统加电后运行的第一段软件代码。PC机中的引

导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的

OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成

硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的

RAM中,然后将控制权交给OS BootLoader。BootLoader的主要运

行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入

口点去运行,也即开始启动操作系统。

通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入

式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是

不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用

的概念来,以指导用户特定的BootLoader设计与实现。

【常见bootloader】

Redboot

Redboot是Redhat公司随eCos发布的一个BOOT方案,是一

个开源项目。

当前Redboot的最新版本是Redboot-2.0.1,Redhat公司将会

继续支持该项目。

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,内存,寄存器、 内存、外设测

试功能等

Redboot是标准的嵌入式调试和引导解决方案,支持几乎所有的

处理器构架以及大量的外围硬件接口,并且还在不断地完善过程中。

ARMboot

ARMboot是一个ARM平台的开源固件项目,它特别基于

PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。

鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项

目为U-Boot。

ARMboot发布的最后版本为ARMboot-1.1.0,2002年

ARMboot终止了维护。

ARMboot支持的处理器构架有StrongARM ,ARM720T ,

PXA250 等,是为基于ARM或者StrongARM CPU的嵌入式系统所

设计的。

ARMboot的目标是成为通用的、容易使用和移植的引导程序,非

常轻便地运用于新的平台上。ARMboot是GPL下的ARM固件项目

中唯一支持Flash闪存,BOOTP、DHCP、TFTP网络下载,PCMCLA

寻线机等多种类型来引导系统的。特性为:

-支持多种类型的FLASH

-允许映像文件经由BOOTP、DHCP、TFTP从网络传输;

-支持串行口下载S-record或者binary文件

-允许内存的显示及修改

-支持jffs2文件系统等

Armboot对S3C44B0板的移植相对简单,在经过删减完整代码

中的一部分后,仅仅需要完成初始化、串口收发数据、启动计数器和

FLASH操作等步骤,就可以下载引导uClinux内核完成板上系统的加

载。总得来说,ARMboot介于大、小型Boot Loader之间,相对轻

便,基本功能完备,缺点是缺乏后续支持。

U-Boot

U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了

PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月

17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停

止维护。

U-Boot自发布以后已更新6次,最新版本为U-Boot-1.1.1,U-

Boot的支持是持续性的。

U-Boot支持的处理器构架包括PowerPC (MPC5xx,MPC8xx,

MPC82xx,MPC7xx,MPC74xx,4xx), ARM (ARM7,ARM9,

StrongARM,Xscale),MIPS (4Kc,5Kc),x86等等, U-Boot

(Universal Bootloader)从名字就可以看出,它是在GPL下资源代

码最完整的一个通用Boot Loader。

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的功能是如此之强大,涵盖了绝大部分处理器构架,提供

大量外设驱动,支持多个文件系统,附带调试、脚本、引导等工具,

特别支持Linux,为板级移植做了大量的工作。U-Boot1.1.1版本特别包

含了对SA1100和44B0芯片的移植,所以44B0移植主要是针对

Board 的移植,包括FLASH、内存配置以及串口波特率等等。U-Boot

的完整功能性和后续不断的支持,使系统的升级维护变得十分方便。

Blob

Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik

Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot

Loader。

Blob的最后版本是blob-2.0.5。

Blob支持SA1100的LART主板,但用户也可以自行修改移植。

Blob也提供两种工作模式,在启动时处于正常的启动加载模式,

但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模

式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux 内核。其

基本功能为:

初始化硬件(CPU速度,存储器,中断,RS232串口)

-引导Linux内核并提供ramdisk

- 给LART下载一个内核或者ramdisk

-给FLASH片更新内核或者ramdisk

-测定存储配置并通知内核

-给内核提供一个命令行

Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导

Liunx,目前大部分S3C44B0板都用Blob修改移植后来加载uClinux。

Bios-lt

Bios-lt是专门支持三星(Samsung)公司ARM构架处理器

S3C4510B的Loader,可以设置CPU/ROM/SDRAM/EXTIO,管理

并烧写FLASH,装载引导uClinux内核。这是国内工程师申请GNU

通用公共许可发布的。

Bios-lt的最新版本是Bios-lt-0.74,另外还提供了S3C4510B的

一些外围驱动。

Bootldr

Bootldr是康柏(Compaq)公司发布的,类似于compaq iPAQ

Pocket PC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口

Y-modem协议以及jffs文件系统。

Bootldr的最后版本为Bootldr-2.19。

2024年11月2日发(作者:肇绿夏)

刷机工具Odin3v1.85中的BOOTLOADER详解,三星

I9000GalaxyS安卓论坛

本帖最后由 czczyx 于 2011-11-2 04:21 编辑

看到有机油问:

刷机工具Odin3 v1.85中的BOOTLOADER是什么?

百度了一下资料,与各位机油分享。

简单地说,BootLoader就是在操作系统内核运行之前运行的一段

小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间

映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调

用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像

BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启

动程序),因此整个系统的加载启动任务就完全由BootLoader来完

成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电

或复位时通常都从地址0x00000000处开始执行,而在这个地址处安

排的通常就是系统的BootLoader程序。

【简介】

在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。

一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:

1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可

选),和BootLoader两大部分。

2、 Linux内核。特定于嵌入式板子的定制内核以及内核的启动参

数。

3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件

系统。通常用ramdisk来作为rootfs。

4、 用户应用程序。特定于用户的应用程序。有时在用户应用程

序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入

式GUI有:MicroWindows和MiniGUI等。

引导加载程序是系统加电后运行的第一段软件代码。PC机中的引

导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的

OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成

硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的

RAM中,然后将控制权交给OS BootLoader。BootLoader的主要运

行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入

口点去运行,也即开始启动操作系统。

通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入

式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是

不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用

的概念来,以指导用户特定的BootLoader设计与实现。

【常见bootloader】

Redboot

Redboot是Redhat公司随eCos发布的一个BOOT方案,是一

个开源项目。

当前Redboot的最新版本是Redboot-2.0.1,Redhat公司将会

继续支持该项目。

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,内存,寄存器、 内存、外设测

试功能等

Redboot是标准的嵌入式调试和引导解决方案,支持几乎所有的

处理器构架以及大量的外围硬件接口,并且还在不断地完善过程中。

ARMboot

ARMboot是一个ARM平台的开源固件项目,它特别基于

PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。

鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项

目为U-Boot。

ARMboot发布的最后版本为ARMboot-1.1.0,2002年

ARMboot终止了维护。

ARMboot支持的处理器构架有StrongARM ,ARM720T ,

PXA250 等,是为基于ARM或者StrongARM CPU的嵌入式系统所

设计的。

ARMboot的目标是成为通用的、容易使用和移植的引导程序,非

常轻便地运用于新的平台上。ARMboot是GPL下的ARM固件项目

中唯一支持Flash闪存,BOOTP、DHCP、TFTP网络下载,PCMCLA

寻线机等多种类型来引导系统的。特性为:

-支持多种类型的FLASH

-允许映像文件经由BOOTP、DHCP、TFTP从网络传输;

-支持串行口下载S-record或者binary文件

-允许内存的显示及修改

-支持jffs2文件系统等

Armboot对S3C44B0板的移植相对简单,在经过删减完整代码

中的一部分后,仅仅需要完成初始化、串口收发数据、启动计数器和

FLASH操作等步骤,就可以下载引导uClinux内核完成板上系统的加

载。总得来说,ARMboot介于大、小型Boot Loader之间,相对轻

便,基本功能完备,缺点是缺乏后续支持。

U-Boot

U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了

PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月

17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停

止维护。

U-Boot自发布以后已更新6次,最新版本为U-Boot-1.1.1,U-

Boot的支持是持续性的。

U-Boot支持的处理器构架包括PowerPC (MPC5xx,MPC8xx,

MPC82xx,MPC7xx,MPC74xx,4xx), ARM (ARM7,ARM9,

StrongARM,Xscale),MIPS (4Kc,5Kc),x86等等, U-Boot

(Universal Bootloader)从名字就可以看出,它是在GPL下资源代

码最完整的一个通用Boot Loader。

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的功能是如此之强大,涵盖了绝大部分处理器构架,提供

大量外设驱动,支持多个文件系统,附带调试、脚本、引导等工具,

特别支持Linux,为板级移植做了大量的工作。U-Boot1.1.1版本特别包

含了对SA1100和44B0芯片的移植,所以44B0移植主要是针对

Board 的移植,包括FLASH、内存配置以及串口波特率等等。U-Boot

的完整功能性和后续不断的支持,使系统的升级维护变得十分方便。

Blob

Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik

Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot

Loader。

Blob的最后版本是blob-2.0.5。

Blob支持SA1100的LART主板,但用户也可以自行修改移植。

Blob也提供两种工作模式,在启动时处于正常的启动加载模式,

但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模

式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux 内核。其

基本功能为:

初始化硬件(CPU速度,存储器,中断,RS232串口)

-引导Linux内核并提供ramdisk

- 给LART下载一个内核或者ramdisk

-给FLASH片更新内核或者ramdisk

-测定存储配置并通知内核

-给内核提供一个命令行

Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导

Liunx,目前大部分S3C44B0板都用Blob修改移植后来加载uClinux。

Bios-lt

Bios-lt是专门支持三星(Samsung)公司ARM构架处理器

S3C4510B的Loader,可以设置CPU/ROM/SDRAM/EXTIO,管理

并烧写FLASH,装载引导uClinux内核。这是国内工程师申请GNU

通用公共许可发布的。

Bios-lt的最新版本是Bios-lt-0.74,另外还提供了S3C4510B的

一些外围驱动。

Bootldr

Bootldr是康柏(Compaq)公司发布的,类似于compaq iPAQ

Pocket PC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口

Y-modem协议以及jffs文件系统。

Bootldr的最后版本为Bootldr-2.19。

发布评论

评论列表 (0)

  1. 暂无评论