我想在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”是没有意义的。
您是否知道我该如何进行?
谢谢!
答案 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