启扬智能-ARM嵌入式开发平台与方案提供商

才智横溢 / 卓越品质

开发板上电后Uboot的常用操作

发布日期:2021/07/20 06:23:57 发布者:admin

  启扬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相较于内核而言,虽然体积小但是做的工作却一点也不少。

相关产品

i.mx6开发板

    IAC-IMX6-Kit