Bootloader 简介

1、bootloader 基本概念
(1) 在嵌入式操作系统中,BootLoader 是在操作系统内核运行之前运行,通常从内存地址 0x00000000 开始执行.
作用: 初始化硬件设备、建立内存空间映射图,将系统的软硬件环境带到一个合适状态,
   以便为最终调用操作系统内核准备好正确的环境.

(2) 基本特点:
 a) Bootloader是基于特定硬件平台来实现;
 b) Bootloader不但依赖于CPU的体系结构; 而且依赖于嵌入式系统板级设备的配置.
  
2、bootloader 启动过程
 Bootloader启动大多数都分为两个阶段:
(1) 第 1 阶段: 主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。
这个阶段的任务有:
 a) 基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等).
 b) 为第 2 阶段准备RAM空间;如果是从某个固态存储媒质中,则复制Bootloader的第 2 阶段代码到RAM.
 c) 设置堆栈.
 d) 跳转到第二阶段的C程序入口点.
备注: 在第 1 阶段中为什么要关闭Cache?
 => 通常使用Cache以及写缓冲是为了提高系统性能,但由于Cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。
(2) 第 2 阶段:通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。
这个阶段的任务有:
 a) 初始化本阶段要使用到的硬件设备。
 b) 检测系统内存映射。
 c) 将内核映像和根文件系统映像从Flash读到RAM。
 d) 为内核设置启动参数。
 e) 调用内核。

3、常见的 bootloader
(1) Redboot: 它是 Redhat 公司随eCos发布的一个BOOT方案,是一个开源项目。
 Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC,Renesas SHx,v850,x86等,是一个完善的嵌入式系统Boot Loader.
(2) ARMboot: 它是一个ARM平台的开源固件项目,它特别基于PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。
 鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项目为U-Boot。
(3) U-Boot: 它是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot.
 U-Boot支持的处理器构架包括PowerPC,ARM,MIPS,x86等等,
 U-Boot(Universal Bootloader) 它是在GPL下资源代码最完整的一个通用Boot Loader.

转载于:https://my.oschina.net/u/2511066/blog/668577

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值