分类: LINUX
2010-05-24 19:52:59
有点类似Shell,U-Boot也使用环境变量。可以通过printenv命令查看环境变量的设置。
U-Boot> printenv
bootdelay=3
baudrate=115200
netmask=255.255.0.0
ethaddr=12:34:56:78:90:ab
bootfile=uImage
bootargs=console=ttyS0,115200 root=/dev/ram rw initrd=0x30800000,8M
bootcmd=tftp 0x30008000 zImage;go 0x30008000
serverip=192.168.1.1
ipaddr=192.168.1.100
stdin=serial
stdout=serial
stderr=serial
Environment size: 337/131068 bytes
U-Boot>
表6.5是常用环境变量的含义解释。通过printenv命令可以打印出这些变量的值。
表6.5 U-Boot环境变量的解释说明
环 境 变 量 |
解 释 说 明 |
bootdelay |
定义执行自动启动的等候秒数 |
baudrate |
定义串口控制台的波特率 |
netmask |
定义以太网接口的掩码 |
ethaddr |
定义以太网接口的MAC地址 |
bootfile |
定义缺省的下载文件 |
bootargs |
定义传递给Linux内核的命令行参数 |
bootcmd |
定义自动启动时执行的几条命令 |
serverip |
定义tftp服务器端的IP地址 |
ipaddr |
定义本地的IP地址 |
stdin |
定义标准输入设备,一般是串口 |
stdout |
定义标准输出设备,一般是串口 |
stderr |
定义标准出错信息输出设备,一般是串口 |
U-Boot的环境变量都可以有缺省值,也可以修改并且保存在参数区。U-Boot的参数区一般有EEPROM和Flash两种设备。
环境变量的设置命令为setenv,在6.2.2节有命令的解释。
举例说明环境变量的使用。
=>setenv serverip 192.168.1.1
=>setenv ipaddr 192.168.1.100
=>setenv rootpath "/usr/local/arm/3.3.2/rootfs"
=>setenv bootargs "root=/dev/nfs rw nfsroot=\$(serverip):\$(rootpath) ip=
\$(ipaddr) "
=>setenv kernel_addr 30000000
=>setenv nfscmd "tftp \$(kernel_addr) uImage; bootm \$(kernel_addr) "
=>run nfscmd
上面定义的环境变量有serverip ipaddr rootpath bootargs kernel_addr。环境变量bootargs中还使用了环境变量,bootargs定义命令行参数,通过bootm命令传递给内核。环境变量nfscmd中也使用了环境变量,功能是把uImage下载到指定的地址并且引导起来。可以通过run命令执行nfscmd脚本。