零、uboot基础概念

本文详细介绍了U-Boot的基础概念,包括其在嵌入式系统中的作用、必须解决的问题、工作方式,以及常用命令和环境变量的管理。U-Boot作为启动操作系统内核的关键,它负责初始化硬件、管理Flash和DDR,并提供命令行界面。文章还讨论了U-Boot的分区策略和内存管理,对于理解和使用U-Boot进行系统部署至关重要。
摘要由CSDN通过智能技术生成

uboot基础概念

1.为什么要有uboot?

  • 预备知识
    • 计算机系统运行时的主要核心部件包含3个东西:CPU+外部存储器+内部存储器
    • PC机启动过程为:PC上电后先执行BIOS程序(实际上PC 的BIOS就是NorFlash),BIOS负责初始化DDR内存和硬盘,然后从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了)
  • uboot主要作用是用来启动操作系统内核,部署整个计算机系统,有操作Flash等板子上硬件的驱动,提供一个命令行界面供人操作
  • uboot程序部署在能作为启动设备的Flash做上,OS部署在Flash上,内存在掉电时无作用,CPU在掉电时不工作
  • 嵌入式系统上电后先执行uboot、然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了)

2. uboot必须解决的问题

  • 自身可开机直接启动

    • 必须根据具体的SoC的启动方式来设计uboot

    • uboot必须进行和硬件相对应的代码级别的更改和移植,才能保证响应启动介质的启动,uboot中第一阶段的start.S文件中处理了这一块

  • 能够引导操作系统内核启动并给内核传参

    • 我们可以在uboot中事先给Linux内核准备一些启动参数放在内存中特定位置然后传给内核,内核启动后会到这个特定位置去取uboot传给他的参数,然后内核解析这些参数
  • 能提供系统部署功能

    • uboot必须能够被人借助而完成整个系统在Flash上的烧录下载工作(裸机在刷机时就是利用uboot中的fastboot功能将各种镜像烧录到iNand中,然后从iNand启动)
  • 能进行SoC级和板级硬件管理

    • uboot中实现了一部分硬件的控制能力,因为uboot为了完成一些任务必须让一些硬件工作。譬如uboot要在刷机时LCD上显示进度条就必须驱动LCD。
    • SoC级就是SoC内部外设,板级就是SoC外面开发板上面的硬件
  • uboot存在生命周期

    • uboot本质上是一个裸机程序,一旦uboot开始SoC就会单纯运行uboot,一旦uboot结束运行就无法再回到uboot
    • uboot入口为开机自动启动;出口为启动内核

3. uboot的工作方式

  • 从裸机程序镜像uboot.bin说起
    • uboot的本质就是一个裸机程序,和裸机教程中的裸机程序xx.bin没有本质区别,区别主要在于文件大小,uboot在180k-400k之间
    • uboot本身为一个开源项目,由若干个.c文件和.h文件组成,配置编译之后会生成一个uboot.bin,这就是uboot这个裸机的镜像文件。然后镜像文件被合理的烧录到启动介质中拿去给SoC启动,即uboot在没有运行时表现为uboot.bin
    • uboot运行时会被加载到内存中,然后逐次拿给CPU去运行
  • uboot的命令式shell
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值