启扬IAC-IMX6-KIT开发板为演示板,看上电后Uboot的一些常用操作

 ARM Linux 的启动流程大致为:uboot->kernel->rootfs的顺序依次启动。Uboot作为Linux嵌入式系统的“排头兵”,启动过程极其短暂,但对整个系统及硬件设备来说是不可忽视的,今天就给大家来介绍开发板上电后的一些uboot常用操作。

以启扬IAC-IMX6-KIT开发板为例,Uboot加载速度极快,所以在开发板上电瞬间根据串口打印信息。Hit any key to stop autoboot按下任意按键停留在Uboot处。

图片

首先输入打印环境变量的命令printenv,查看uboot此时的环境变量,如下图所示:

图片

板子的名称、MAC地址,文件系统,初始化信息等都会相继的传入内核,内核会根据这些信息去匹配并设置相关属性。

Uboot也提供了一系列的命令用于设置环境变量等,可以用命令来修改Uboot相关信息继而修改内核相关信息。

以修改网口的MAC地址为例:

使用setenv ethaddr 命令将mac地址传入进去,然后再用打印环境变量命令查看是否修改成功,uboot修改成功后,接下来就可以进入内核查看是否修改成功了。

图片

图片

图片

输入boot命令就会按照当前环境变量启动内核,输入ifconfig命令查看mac地址,发现与我们在Uboot中设置的相同,说明修改成功。

注意:这里修改的变量重启后会失效,属于临时变量,如果想重启后不失效,可以用保存环境变量命令saveenv将环境变量写入EMMC中。

有些需要传入内核的信息可以在Uboot环境变量中设置,这样省去了很多不必要的麻烦事。

那么如何将Uboot的初始化信息在一开始就传输呢?这里就需要修改Uboot源码里的开发板配置信息。

相关配置文件位于启扬提供的开发板Uboot源码include/configs/文件夹下,打开mx6qiyang_common.h,找到默认的环境变量配置语句,如下图所示:

图片

如果想要修改bootargs_mmc相关的属性,可以直接在这里修改后面的属性即可。

注意:建议不要一开始就写入Uboot源码文件中,可以在命令行中输入相关环境变量调试,调试成功后再一次性写入,当作一个完整的Uboot镜像用于生产、测试等。

本篇文章仅仅介绍的只是Uboot的一小部分内容,因为承担着上电之后的一系列初始化工作,所以Uboot相较于内核而言,虽然体积小但是做的工作却一点也不少。

浙江启扬智能科技有限公司  ARM嵌入式解决方案提供商

成立于2007 年, 是一家专注于 ARM 嵌入式产品研发、生产与销售的高新技术企业,为用户提供基于ARM平台的工控板、核心板、开发板、主板、定制化产品OEM/ODM以及应用于工控、物联网、新零售、医疗、电力、环境监测、充电桩等领域的产品软硬件解决方案。

Logo

更多推荐