Linux之u-boot启动流程

  • Bootloader介绍

(一)为什么需要bootloader

       由于Linux内核不支持自启,因此我们需要一个引导程序来引导Linux内核启动,并且做一些前期准备,这个引导程序就是bootloader,但是由于每种开发板资源不同,而且cpu架构之间也有差别,因此一款bootloader程序不可能适用于所有的环境。但是经过大师们的努力,经过简单的配置改动,就能够实现引导很多操作系统,这款引导代码就是U-Boot。

       U-Boot的优点:

  1. 源码开放;
  2. 支持多种嵌入式系统操作内核(Linux、vxworks);
  3. 支持多种处理器系列(arm,x86);
  4. 灵活性和可靠性较高;
  5. 高度灵活的功能设置,适合U-Boot调试、产品发布等;
  6. 拥有丰富的设备驱动源码;
  7. 较为丰富的开发调试文档以及强大的技术支持。

(二)bootloader的启动方式

       CPU在上电或者复位时,会从某个地址开始执行。ARM结构的CPU从0x0000000开始,通常这个开始地址处就存放了BL1+bootloader这样一上电就可以执行的代码(bootloader相当于BL2)。

       从开发和用户使用角度看,bootloader分为以下两种操作模式。

       自启动模式(Boot loading):

       在这种模式中,bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程不需要用户介入,在产品发布以后,基本采用这种工作模式。

       交互模式(Downloading):

       在这种模式下,开发人员可以使用各种命令通过串口或者网络从主机下载文件到RAM中,可以被bootloader写到目标机的固态存储介质中,或者直接进入系统的引导。

(三)常用bootloader

       由于各个开发板的差异以及CPU的不同,导致bootloader的种类也非常多,以下列出了Linux的开发源码的bootloader及其支持的结构:

开放源码的linux引导程序

Bootloader

Monitor

描述

X86

ARM

PowerPC

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值