【发布时间】:2013-03-26 21:34:18
【问题描述】:
我正在为 Raspberry Pi 移植开源项目 OpenROV。 (该项目是为 BeagleBone 开发的。)该端口的唯一重大挑战是将软件对 GPIO1_0(又名 GPIO32)的引用更改为在 Raspberry Pi 的标头上打开的引脚(我在想 GPIO18)。原代码如下:
#!/bin/sh
# GPIO1_0 equals equals /sys/class/gpio32 (32 + 0)
#see http://ninjablocks.com/blog/2012/1/20/setting-up-gpio-on-the-beaglebone.htm l
back_to_normal() {
sleep 1
#set GPIO1_0 to HIGH
echo "high" > /sys/class/gpio/gpio32/direction
}
reset() {
sleep 1
#prepare gpio
echo "32" > /sys/class/gpio/export
echo "out" >/sys/class/gpio/gpio32/direction
echo 7 > /sys/kernel/debug/omap_mux/gpmc_ad0
#set GPIO1_0 to low
echo "low" > /sys/class/gpio/gpio32/direction
back_to_normal
}
echo Initiating arduino reset 1>&2
reset &
当然,我可以将 32 的引用更改为 18,但这需要在每次更新时进行额外的工作。相反,有什么方法可以创建一个虚拟 GPIO32,自动将命令重定向到 GPIO18?
【问题讨论】:
-
好吧,我对树莓派一无所知,但一些通用的 Unix 提示可能会帮助你:a) 使用符号链接而不是实际设备; b) 在你的 shell 脚本中使用一个参数来设置端口(即给它 18,它会在你的脚本中的任何地方使用 18 c)如果它可用,使用
socat。 -
感谢您的建议 - 我只使用了几个月的 linux 并且不知道正确的术语。 a)这是我无法弄清楚如何做的主要事情 b)有道理,特别是因为这是我将使用该设备的唯一目的。 c) 这可能会奏效。我会试一试,然后回复你。
标签: bash raspberry-pi gpio reroute