当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 什么是Bootloader

什么是Bootloader 时间:2018-12-13      来源:华清远见

1、概念

简而言之即在具有操作系统(Linux内核)的嵌入式设备启动操作系统启动前运行的一段引导程序。

2、功能

(1)初始化硬件设备

(2)建立内存空间的映射图

(3)完成内核的加载,为内核设置启动参数

从而准备好一个适合操作系统运行的软硬件环境。

3、bootLoader程序结构框架

       嵌入式系统中的boot Loader 的实现完全依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为第一阶段和第二阶段两大部分,依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在阶段1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而阶段2 则通常用C语言来实现,这样可以实现一些复杂的功能,而且代码会具有更好的可读性和可移植性。

(1)、Boot Loader 的阶段1通常主要包括以下步骤:

         硬件设备初始化;

         拷贝Boot Loader的程序到RAM空间中;

         设置好堆栈;

         跳转到阶段2的C入口点。

(2)、Boot Loader的阶段2通常主要包括以下步骤:

         初始化本阶段要使用到的硬件设备;

         系统内存映射(memory map);

         将kernel映像和根文件系统映像从Flash读到RAM空间中;

         为内核设置启动参数;

         调用内核。

3、常见的BootLoader

Redboot:

Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。

U-Boot:

U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停止维护。

Bootldr:

Bootldr是康柏(Compaq)公司发布的,类似于compaq iPAQ Pocket PC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口Y-modem协议以及jffs文件系统。

Blob:

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

4、u-boot的启动流程及典型操作系统的启动流程

什么是Bootloader,嵌入式开发
什么是Bootloader,嵌入式开发

我们通常使用交叉编译工具对BootLoader的源码进行编译,再通过下载器或者SD卡将boot烧写至开发板上。

上一篇:matlab定义函数

下一篇:IPC机制之管道

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部