Я пытаюсь реализовать режим восстановления на плате, работающей на OpenWRT.
У меня есть кнопка, подключенная к некоторому GPIO: GPIO_PL4.
Я привел имя gpio к числовому представлению, используя следующее выражение:
(position of letter in alphabet - 1) * 32 + pin number
Итак, я получил PL4
- 356
отображение.
Я пытался добавить следующие строки в файл окружения uboot uEnv-default.txt
:
if gpio input 356; then
echo "The button is pressed";
fi;
Но при загрузке появилось сообщение об ошибке:
gpio: requesting pin 356 failed
gpio - query and control gpio pins
Usage:
gpio <input|set|clear|toggle> <pin>
- input/set/clear/toggle the specified pin
gpio status [-a] [<bank> | <pin>] - show [all/claimed] GPIOs
Затем я попытался получить информацию о GPIO, используя gpio status -a
:
gpio status -a (within uEnv-default.txt)
И получил следующий вывод:
Bank PA:
...
Bank PL:
PL0: func
...
PL4: func // does it mean that I'm not able to use it as an input
...
PL11: func
PL12: input: 0 [ ]
PL13: input: 0 [ ]
....
Итак, вопрос: могу ли я использовать вывод PL4 gpio в качестве входа с текущей конфигурацией gpio, и если нет, как я могу изменить конфигурацию gpio для этого вывода, если это вообще возможно?
Полагаю, мне нужно применить патч к U-Boot, чтобы создать правильную конфигурацию gpio, я прав?