uboot的工作方式


Part1:裸机程序镜像

  1. uboot本身是一个开源项目,由若干个.c.h文件组成

  2. 配置编译之后会生成一个uboot.bin,这就是uboot这个裸机程序的镜像文件

  3. 然后这个镜像文件被合理的烧录到启动介质中拿给SoC去启动

uboot在没有运行时表现为uboot.bin,一般躺在启动介质里

uboot运行时会被加载到内存中,然后一条指令一条指令的拿给CPU去运行


Part2:命令行式shell界面

普通的裸机程序运行起来就直接执行了,执行时的效果和代码有关

有些程序需要和人进行交互,于是乎程序中就实现了一个shell

shell就是通过人机交互的一个界面

uboot就是实现了这样一个shell

注意:

  1. shell并不是操作系统,和操作系统一点关系都没有
  2. Linux中打开一个终端后就得到一个shell,可以输入命令回车执行
  3. uboot中的shell工作方式和Linux中的终端shell非常像
    (几乎是一样的,只是命令集不一样,譬如Linux中可以ls,而在ubootls是不被识别的)

Part3:命令和环境变量

  1. uboot启动后大部分时间和工作都是在shell下完成的

    譬如uboot要部署系统要在shell下输命令、要设置环境变量也得在命令行下,要启动内核也要在命令行下敲命令

  2. 命令就是ubootshell中可以识别的各种命令,uboot中有几十个命令,其中有一些常用另一些不常用

    我们还可以自己给uboot添加命令

  3. uboot在设计时借助了操作系统的设计理念,uboot的环境变量和操作系统的环境变量的工作原理、方式几乎完全相同

    命令行工作方式借鉴了Linux终端命令行
    环境变量借鉴了操作系统的环境变量
    uboot的驱动管理几乎完全照抄了Linux的驱动框架

  4. 环境变量可以被认为是系统的全局变量,环境变量名都是系统内置的

    认识就认识,不认识就不认识
    这部分是系统自带的默认的环境变量,譬如PATH
    但是也有一部分环境变量是自己添加的,自己添加的系统就不认识,但是我们认识

  5. 系统或者我们自己的程序在运行时可以通过读取环境变量来指导程序的运行。

    这样设计的好处就是灵活
    譬如我们要让一个程序更改运行方法
    就不用去重新修改程序代码再重新编译运行
    而只要修改相应的环境变量就可以了

  6. 环境变量就是运行时的配置属性


思考:结合ARM裸机部分进行理解和印证

结合ARM裸机,对比分析思考,会得到更多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值