uboot-环境变量

9 篇文章 0 订阅
2 篇文章 0 订阅

uboot环境变量

1 环境变量描述

环境变量有2份,一份在Flash中,另一份在DDR中。uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始化值,然后使用过程中都是用DDR中这一份,用户可以用saveenv指令将DDR中的环境变量重新写入Flash中去更新Flash中环境变量。下次开机时又会从Flash中再读一次。

环境变量在uboot中是用字符串表示的,也就是说uboot是按照字符匹配的方式来区分各个环境变量的。

2 自动运行倒数时间:bootdelay
3 网络设置环境变量:

(1)ipaddr是开发板的本地IP地址
(2)serverip是开发板通过tftp指令去tftp服务器下载东西时,tftp服务器的IP地址。
(3)gatewayip是开发板的本地网关地址
(4)netmask是子网掩码
(5)ethaddr是开发板的本地网卡的MAC地址。

4 自动运行命令设置:bootcmd

uboot开机自动启动时实际就是在内部执行了bootcmd这个环境变量的值所对应的命令集。

bootcmd设置格式为:bootcmd=movi read kernel 30008000; bootm 30008000。意思是:将iNand的kernel分区读取到DDR内存的0x30008000地址处,然后使用bootm启动命令从内存0x30008000处去启动内核。

小实验:set bootcmd printenv,然后saveenv;然后重启则会看到启动倒数后自动执行printenv命令打印出环境变量。这个小实验说明开机自动执行了bootcmd。

设置bootcmd时加引号:set bootcmd ‘movi read kernel 30008000; bootm 30008000’。

5 uboot给kernel传参:bootargs

linux内核启动时可以接收uboot给他传递的启动参数,这些启动参数是uboot和内核约定好的形式、内容,linux内核在这些启动参数的指导下完成启动过程。这样的设计是为了灵活,为了内核在不重新编译的情况下可以用不同的方式启动。

在uboot的环境变量中设置bootargs,然后bootm命令启动内核时会自动将bootargs传给内核。当前设置bootargs环境变量格式为bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3。当前参数含义为
(1)console=ttySAC2,115200。含义为控制台使用串口2,波特率115200。
(2)root=/dev/mmcblk0p2 rw。含义为根文件系统在SD卡端口0设备(iNand)第2分区,根文件系统是可读可写的。
(3)init=/linuxrc。含义为linux的进程1(init进程)的路径。
(4)rootfstype=ext3 含义为根文件系统的类型是ext3。

6 新建、更改、删除、保存一个环境变量

(1)新建一个环境变量,使用set var value。
(2)更改一个环境变量,使用set var value。
(3)删除一个环境变量,使用set var 空格。
(4)保存环境变量,使用save或者saveenv。

参考:朱老师物联网大讲堂。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值