请问u-boot-1.3.4命令行中的环境变量引用问题
以前用u-boot 1.2时,在命令行可以用$(变量名)来引用环境变量,新转到1.3.4居然不行了。比如:
set ipaddr 192.168.1.2
echo $(ipaddr)应该显示192.168.1.2,但在1.3.4里显示$(ipaddr)
编译u-boot时要改哪个宏定义吗?
没学过这个东西,帮顶 set ipaddr之后要保存,用 saveenv命令
打印环境变量是用:printenv vilan 发表于 2013-6-26 15:12 static/image/common/back.gif
set ipaddr之后要保存,用 saveenv命令
打印环境变量是用:printenv
是我没写清楚还是你没理解清楚? 不会玩这个 uboot在1.3版以后重构过了,去掉了很多东西,当然也加入了一些新的东西。
我的1.3.4版是支持$(ipaddr)这种写法的,可能被前人改过了,所以我也没去研究过,你的不行的话,要么自己支持一下,要么去下个新的试试,或者干脆不要使用了,免得自找麻烦。
解决了,是宏CFG_HUSH_PARSER控制的。找这个宏的解释不多,在这里看到一段:http://blog.csdn.net/string19820108/article/details/7673049
--------------------------------------------------------------
如果执行上面的函数的时候用户按下了任意键,将继续执行到这里,mainloop输出一些提示符后会一直等待用户的输入,当用户输入完成后,对用户的输入进行解析,根据命令的不同到.u_boot_cmd中查找指定的命令,找到后执行对应的函数。
命令的解析方法有两种,第一种就是最笨的办法,直接到.u_boot_cmd段中进行字符串比较,找到相同的那么就执行,如果命令比较少,相对来说对性能没有太大的损失,但是当命令很多时这种方法就不是很合适了。Uboot使用另外一种查找办法解决这个问题:使用hush表,只要用户在configs/MPC8349ADS.h文件中定义:
#define CFG_HUSH_PARSER
就可以实现了。这种方法与上面的方法基本相同,只是在查找方式上做了优化,这样可以提高查找速度,具体的代码可以查看common/main.c文件
--------------------------------------------------------------
如果用了CFG_HUSH_PARSER,命令的查找是快了,但也去掉了解析环境变量的功能。
多谢楼主分享
页:
[1]