3.1.类似linux终端的行缓冲命令行
(1)行缓冲就是指当我们向终端输入命令时,该命令会被放置于缓冲区(系统此时不会识别分析并处理该命令),直至用户输入完命令并按下回车键(换行)后,系统才会识别分析缓冲区中的命令并进行处理。
(2)linux终端设计有3种缓冲机制:无缓冲(用户输入1个字母,系统就识别分析处理1个字母,适用于命令集为单个字母的shell)、行缓冲(用户输入1行并按下回车键后,系统才识别分析处理命令)、全缓冲(等到整个缓冲区满了系统才会识别分析处理命令)。
3.2.有些命令有简化的别名
(1)譬如printenv命令可以简化为pri;譬如setenv可以简化为set;譬如help可简化为?。
3.3.有些命令会带参数
(1)uboot中的每个命令都有事先规定好的各种格式。有些命令不带参数(譬如printenv/print);有些命令带可选参数(即可带可不带,譬如help/?);有些命令必须带参数(譬如setenv/set)。
3.4.命令中的特殊符号
(1)uboot中有些命令带的参数非常长并且中间有空格、分号,为了告诉uboot这一串整体是给它的一整个参数,需使用单引号将这串整体括起来进行标识。
(2)分号的作用类似于C语言中的分号,用于分隔uboot中一整个参数中的单独的每个小参数命令。
(3)还有别的一些特殊符号如冒号、逗号等,当在uboot命令中碰到这些特殊符号需特别注意其代表的特殊含义。
3.5.有些命令是一个命令族
(1)命令族就是很多命令的开头都是使用同一个命令关键字的,但是后面的参数不同,并且这些命令的功能和作用也不同,譬如movi。
(2)同一命令族中所有的命令都有极大的关联,譬如movi开头的命令族都和moviNand(EMMC、iNand,moviNand是三星开发出的一款闪存芯片)芯片操作有关。
(3)查看命令族下的所有命令可使用help命令查询,譬如help movi或? movi。
3.6.打印环境变量命令:printenv/pri
(1)printenv/pri命令不带参数,作用是打印系统中所有的环境变量。
(2)环境变量的作用域类似程序中的全局变量,在程序中的任何地方都可以调用或者更改环境变量(一般是调用);环境变量生命周期是一旦我们在程序中保存了该环境变量,则下次开机时环境变量的值将维持上一次更改保存的值,这是因为环境变量被存储在了Flash中专门的环境变量分区中。
3.7.设置环境变量:setenv/set
(1)用法:set name value。作用是设置环境变量,譬如设置倒计时时间:set bootdelay 10。
(2)Flash中的分区依次为uboot分区、环境变量分区、OS分区、rootfs分区;uboot运行时中内存的分区依次为uboot分区、环境变量分区(该环境变量分区是从Flash中映射过来的,注意仅映射1次),所以当在uboot中更改环境变量后,若没有将更改结果写入到Flash中的环境变量分区中,则下次开机启动后环境变量更改无效。
3.8.保存环境变量的更改:saveenv/save
(1)saveenv/save命令不带参数,直接执行即可,作用是将内存中环境变量的值同步保存到Flash中环境变量分区中。
(2)环境变量保存是整体的覆盖保存,也就是说内存中所有的环境变量内容会整体的覆盖Flash中所有的环境变量内容。
(3)彻底改变某个环境变量的值需要2步:第1步使用set命令更改内存中环境变量;第2步使用save命令将其同步到Flash中环境变量的分区。实际运用中根据需求选择相应的操作即可。