bootloader概述

简单地说,bootloader就是在操作系统内核运行前运行的一段程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置成合适的状态,为操作系统内核准备好正确的环境。

PC机的引导程序就是我们常说的BIOS(Basic Input Output System)。对于千差万别的嵌入式设备,几乎不可能建立像BIOS一样的通用引导程序,但是可以在这些Bootloader中寻找出共性。

大多数Bootloader都包含两种操作模式:启动加载模式下载模式。启动加载模式是正常运行时的模式,也是产品发布时必须工作在的模式。下载模式通常是在产品开发调试阶段用的模式。在下载模式下,Bootloader程序将通过串口连接或者网络连接等通信手段从主机上下载内核镜像或是跟系统文件镜像。下载的文件通常被保存在目标机(也就是我们的开发板)的RAM中,然后被Bootloader写到目标机的FLASH等固态存储设备中。工作在下载模式时,Bootloader通常会有一个命令行接口提供给用户。

Bootloader通常有多个执行过程,大多数的Bootloader有stage1和stage2两个阶段,阶段越多功能越强大。在stage1阶段,通常是一些依赖于CPU体系结构的代码,如硬件初始化等操作。stage2通常是执行内核镜像的加载和根文件系统镜像的加载操作,一般用C编写,有较好的可读性和可移植性。

Bootloader的stage1通常包括一下步骤:

1、硬件设备初始化。屏蔽所有中断,设置cpu时钟频率,RAM初始化,关闭CPU内部指令/数据Cache。

2、为加载stage2 准备RAM空间,设置好堆栈,跳至stage2.

stage2包括以下步骤:

1、初始化要用到的硬件设备。

2、检测系统内存映射。

3、将kernel映像和根文件系统映像从Flash读到RAM中。

4、为内核设置启动参数,调用内核。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值