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

问题描述 投票:0回答:1

我想在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'毫无意义。

你知道我怎么能这样做吗?

提前致谢 !

command csh u-boot setenv
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.