如何在U-Boot CLI中测试命令的返回

时间:2019-03-27 16:01:50

标签: command csh u-boot setenv

我想在U-Boot的if语句中使用命令'gpio input'的返回,但是它似乎不起作用。

所以我尝试了类似的方法:

  

if test {gpio status 50} -eq 1; then echo 1; else echo 0; fi;

但是无论GPIO是高电平还是低电平,它总是返回1。

我也尝试使用setenv命令将gpio status命令的结果存储到变量中,但是它也不起作用。

PS:我已经在U-boot源代码中修改了gpio.c文件,因此该命令仅返回“ 0”或“ 1”而不是“ gpio:pin 50(gpio 50)的值为1”,但是我认为没关系。只是规定,否则“ -eq 1”是没有意义的。

您是否知道我该如何进行?

谢谢!

1 个答案:

答案 0 :(得分:1)

命令的返回值可以在环境变量$?中找到,例如

gpio input 50; echo $?

是否存在if语句取决于编译U-Boot时的配置。使用CONFIG_HUSH_PARSER = y启用它。启用后,您可以写

if gpio input 102; then setenv board_name revA ; else setenv board_name revB;fi