嵌入式 uboot启动阶段修改启动参数方法及分析

本文介绍了嵌入式系统中uboot启动阶段修改启动参数的方法,包括设置bootargs和bootcmd环境变量来改变内核和根文件系统的启动位置。通过分析启动过程和uboot命令,详细解释了如何根据需求调整启动配置。
摘要由CSDN通过智能技术生成

uboot启动阶段修改启动参数方法及分析

本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织。毕竟文字跟有声语言表达有别。但愿简单的东西别让我讲的太复杂!

Arm板系统文件一般有三个——bootloader(uboot)、kernel(uImage)及根文件系统(rootfs)。在arm板上电后,按uboot->kernel->rootfs的顺序依次启动。由于开发板上有多种存储介质,三个文件可以放在任何可以存储的介质上,因此也就导致文件的多种启动方式。本文就来讨论,以上三个文件对应不通存放位置的不同启动配置。

一般开发板上会有flash(Nor orNAND),mmc,emmc,sd卡等。系统文件可以烧写在其中的任意一种上,因此也就对应不通的启动。在开发过程中,有时经常需要改动内核,或者修改应用程序,如果每次都修改后都重新烧写到板上的存储介质,会比较麻烦。因此,为方便调试,uImage和rootfs还可以从网络启动,即nfs启动。但uboot只能从板上介质启动。

启动过程其实是先将要启动的文件从存储位置拷贝到内存空间,再在内存中运行。因此所谓不同位置启动,也就是从不同位置拷贝而已。

下面我们以开发板启动为例,分别介绍三个文件从不同位置启动的过程方法。我使用的开发板上有emmc和两个sd卡。我们按照启动顺序,依次介绍。

首先是uboot启动。Uboot是三个系统文件中第一个启动的,对它的拷贝工作由cpu中的固件决定。固件中支持从几个位置拷贝uboot,它就能存放在几个位置上。至于每次启动具体从其中的哪里开始,硬件拨码开关决定,对应拨码在开发板手册上能查到。启动之前,先将uboot的二进制文件拷贝到对应介质。有两种不同方法烧写,如下:

1.               uboot二进制文件拷贝到emmc,是通过芯片供应商的下载工具软件烧写完成;

2.               拷贝到sd卡是在linux下,通过dd命令完成的。

烧写完成后,将启动拨码拨到对应位置即可启动uboot。

然后介绍kernel文件(uImange)和rootfs的启动。如上所述,uImage和rootfs可以从emmc、sd卡或nfs拷贝到内核启动。具体的启动位置由uboot中的参数传递的内容决定。这些参数的内容在uboot中有写死的值,也可以在uboot启动阶段进入到命令输入界面,修改这些参数的值,来改变启动位置。(作者:围补)

进入uboot命令界面后,输入如下一段命令,修改启动参数,并重启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值