在uboot的终端下修改环境变量,需要注意一定的格式,否则的话很容易出现环境变量修改不成功或者修改错误等问题。
一、注意修改的格式
1、修改时不可加 “=” 号。
以修改uboot下的bootcmd为例:
// 错误示范1:
setenv bootcmd = movi read kernel 30008000; movi read rootfs 30B00000 300000; bootm 30008000
这样会出现报错 illegal character ‘=’ in variable name “bootcmd=movi”。
2、修改时,如果一个环境变量由多个命令构成,需要 ; 把各个命令分开,并且把总的用 ‘ ’ 括起来。
// 错误示范2:
setenv bootcmd movi read kernel 30008000; movi read rootfs 30B00000 300000; bootm 30008000
3、所以,综上两个不正确的书写,正确的设置应该为:
// 正确示范:
setenv bootcmd 'movi read kernel 30008000; movi read rootfs 30B00000 300000; bootm 30008000'
二、注意修改的内容
还是以bootcmd为例子,我们知道,当uboot倒数3秒以后就会自动执行bootcmd环境变量指定的内容。但是,本人曾经遇过一个问题,就是明明我的kernel镜像没有问题并且烧录到我的板载的iNAND中的kernel分区了,在倒数3秒以后,却出现 ERROR: can’t get kernel image! 我真的是崩溃,后来经过排查才发现我的bootcmd设置错误了。我设置的kernel的分区信息表跟uboot里面的分区信息表不对应,所以出现了这个错误,这也是我修改环境变量的内容时出现的一个问题,所以,以后大家在修改的时候要先想想内容符不符合,有没错误再设置,否则就会出现像我这样的问题了。