1
我正在移植开源项目OpenROV for Raspberry Pi。 (该项目是为BeagleBone开发的。)端口唯一的重大挑战是将软件对GPIO1_0(aka GPIO32)的引用更改为在Raspberry Pi的头文件中打开的引脚(我在考虑GPIO18)。原代码如下:重新路由树莓派GPIO - 虚拟引脚?
#!/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个,并且它将在脚本c中的每个地方使用18个参数)如果可用,使用'socat'。 – 2013-03-26 22:07:43
感谢您的建议 - 我只用了几个月的linux,并不知道适当的术语。 a)这是我无法解决的主要问题 b)有意义,特别是因为这是我将使用该设备的唯一方法。 c)这可能会诀窍。我会尝试一下并回复你。 – user2213454 2013-03-27 01:41:38