uboot必须解决哪些问题

UBOOT需要能自身启动,根据SoC启动方式设计;引导操作系统内核启动并传递参数;提供系统部署功能,如烧录kernel和rootfs;进行SoC级和板级硬件管理,如驱动LCD和网卡。其生命周期始于开机,终于启动内核,结束后不能返回,重启是新的UBOOT实例。
摘要由CSDN通过智能技术生成

本文就uboot必须要解决的问题进行分析


Part1:能自身开机直接启动

  1. 一般的SoC都支持多种方式启动,譬如SD卡启动、NorFlash启动、NandFlash启动等……

    uboot要能够开机启动,必须根据具体的SoC的启动设计来设计uboot

  2. uboot必须进行和硬件相对应的代码级别的更改和移植,才能够保证可以从相应的启动介质启动

    uboot中第一阶段的start.S文件就是具体处理了这一块


Part2:能引导操作系统内核启动并给内核传参

  1. uboot的终极目标就是启动内核

  2. Linux内核在设计的时候,设计为可以被传参

    也就是说我们可以在uboot中事先给Linux内核准备一些启动参数放在内存中特定的位置然后传给内核
    内核启动后会到这个特定的位置去取uboot传给它的参数
    然后在内核中解析这些函数
    这些函数将来被用来指导Linux内核的启动过程


Part3:能提供系统部署功能

  1. uboot必须能够被人借助而完成整个系统在Flash上的烧录下载工作

    整个系统包括ubootkernelrootfs等的镜像

  2. 裸机中刷机就是利用uboot中的fastboot功能将各种镜像烧录到iNand中,然后从iNand启动


Part4:能进行SoC级和板级硬件管理

  1. uboot中实现了一部分硬件的控制能力(uboot中初始化了一部分硬件,譬如 鼠标、键盘)
    因为uboot为了完成一些任务必须让这些硬件工作

    譬如uboot要实现刷机必须能驱动iNand
    譬如uboot要在刷机时LCD上显示进度条就必须能驱动LCD
    譬如uboot能够通过串口提供操作界面就必须驱动串口
    譬如uboot要实现网络功能就必须驱动网卡芯片

  2. SoC级(譬如串口)就是SoC内部外设

    SoCSystem of Chip,片上系统

  3. 板级就是SoC外面开发板上面的硬件(譬如 网卡、iNand


Part5:uboot的生命周期

生命周期:
uboot什么时候开始运行,什么时候结束运行

本质:
uboot是一个裸机程序(不是操作系统)

  1. 一旦uboot开始,SoC就会单纯运行uboot

    通俗点讲:uboot运行的时候别的程序是不可能同时运行的

  2. 一旦uboot结束运行则无法再回到uboot

    所以uboot启动了内核后,uboot本身就死了,要想再次看到uboot界面只能重启系统
    重启并不是复活了刚才的uboot,重启只是uboot的另一生

入口和出口:

  1. uboot的入口就是开机自动启动

  2. uboot的唯一出口就是启动内核

  3. uboot还可以执行很多别的任务(譬如烧录系统)

    其他任务执行完后都可以回到uboot的命令行下继续执行uboot命令
    而启动内核命令一旦执行就回不来了


总结:一切都是为了启动内核

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值