linux修改串口编号_Linux中bootloader介绍

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

  • 引导加载程序。包括固化在firmware中的boot代码(可选),和Bootloader两大部分。
  • Linux内核。
  • 文件系统。
  • 应用程序。

Bootloader概念

在嵌入式操作系统中,Bootloader是硬件启动的引导程序,是运行操作系统的前提;在操作系统内核或用户应用程序运行之前运行的一小段代码,对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境,类似于X86计算机中的BIOS固件;Bootloader不属于操作系统,一般采用汇编语言和C语言开发,需要针对特定的硬件平台(比如arm、powerpc、MIPS等)编写,Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。

Bootloader的两种操作模式

自启动模式:在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统(kernel)加载到RAM中运行(读取bootcmd参数),整个过程并没有用户的介入。

交互模式:在这种模式下(uboot可在倒计时按任意键进入到这种模式),目标机上的Bootloader将通过串口或网络等方式从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中,可以被 Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。也可以通过串口接收用户的命令。

Bootloader的基本功能

  • 初始化相关硬件
  • 把bootloader自搬运到RAM中
  • 执行用户的命令
  • 访问环境变量
  • 通过网络/串口通信
  • 读写RAM/FLASH
  • 加载并执行内核

常见的Bootloader

  • Redboot:Redhat公司随eCos发布的一个BOOT方案,是一个开源项目,Linux操作系统引导,在线读写Flash。
  • ARMboot:ARM平台的开源固件项目,2002年ARMboot终止了维护。
  • U-Boot:ARMboot并入了PPCBoot,和其他一些平台的Loader合称U-Boot,是目前最常用的bootloader。
  • Blob、Bios-lt、Bootldr、vivi
26b3396212e71685be33cc466b9a7ed9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值