3.uboot 的工作方式

本文内容来自对《朱有鹏嵌入式linux核心课程》总结

1. 从裸机程序镜像 uboot.bin 说起

(1)uboot 的本质就是一个裸机程序,和我们裸机全集中写的那些裸机程序xx.bin 并没有本质区别。如果非说要有区别,那就是:我们写的大部分小于 16kb(一般 uboot 在 180k-400k 之间)
(2)uboot 本身是一个开源项目,由若干个 .c 文件和 .h 文件组成,配置编译之后会生成一个 uboot.bin ,这就是 uboot 这个裸机程序的镜像文件。然后这个镜像文件被 合理的烧录到启动介质中拿给 SoC 去启动。
(3)uboot 运行时会被加载到内存中然后一条指令一条指令的拿给 CPU 去运行。

2. uboot 的命令式 shell 界面

(1)普通的裸机程序运行起来就直接执行了,执行时效果和代码有关。
(2)有些程序需要和人进行交互,于是乎程序中就实现了一个 shell (shell 就是提供人机交互的一个界面,回想ARM裸机全集第十六部分),uboot 就实现了一个 shell。
注意:shell 并不是操作系统,和操作系统一点关系都没有。linux中打开一个终端后就得到了一个 shell,可以输入命令回车执行。 uboot 中的 shell 工作方式和 linux 中的终端 shell 非常像(其实几乎是一样的,只是命令集不一样。譬如 linux 中可以 ls,uboot 中 ls 就不识别了)

3. 掌握 uboot 使用的 2 个关键点:命令和环境变量

(1)uboot 启动后大部分时间和工作都是在 shell 下完成的(譬如 uboot 要部署系统要在 shell 下输命令,要设置环境变量也得在命令行下,要启动内核也要在命令行底下敲命令)
(2)命令就是 uboot 的 shell 中可以识别的各种命令。uboot 中有几十个命令,其中有一些常用另一些不常用(我们还可以自己给 uboot 添加命令),后面会用几节课时间来依次学习 uboot 中常用命令。
(3)uboot 的环境变量和操作系统的环境变量工作原理和方式几乎完全相同。uboot 在设计时借助了操作系统的设计理念(命令行工作方式借鉴了 linux 终端命令行,环境变量借鉴了操作系统的环境变量,uboot 的驱动管理几乎完全照抄了linux驱动框架)。
(4)环境变量可以被认为是系统的全局变量,环境变量名都是系统内置的(认识就认识,不认识就不认识,这部分是系统自带的默认的环境变量,譬如 PATH;但是也有一部分环境变量是自己添加的,自己添加的系统就不认识但是我们自己认识)。系统或者我们自己的程序在运行时可以通过读取环境变量来指导程序的运行。这样设计的好处就是灵活,譬如我们要让一个程序更改运行方法,不用去重新修改程序
(5)环境变量就是运行时的配置属性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzg2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值