【问题标题】:How to test the return of a command in U-Boot CLI如何在 U-Boot CLI 中测试命令的返回
【发布时间】:2019-03-27 16:01:49
【问题描述】:

我想在 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) value is 1”,但我觉得没关系。只是精确,否则'-eq 1'没有意义。

您知道我该如何继续执行此操作吗?

提前致谢!

【问题讨论】:

    标签: command csh u-boot setenv


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多