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