我想寫一個輸出到GPIO引腳1秒的腳本。 我發現最好的方法是通過GPIO sysfs命令,但我一直隨機地收到「Segmentation Fault」。這主要發生在設定方向時。在bash腳本和終端中運行時也會發生這種情況。分割錯誤sysfs gpio linux odroid
sudo echo 227 > /sys/class/gpio/export
sudo chmod 777 /sys/class/gpio/gpio227/*
sudo echo "out" > /sys/class/gpio/gpio227/direction # sometimes segmentation fault
sudo echo "1" > /sys/class/gpio/gpio227/value
# wait a bit
sudo echo "out" > /sys/class/gpio/gpio227/direction # almost always segmentation fault
sudo echo "0" > /sys/class/gpio/gpio227/value
我在ODROID-XU4與Ubuntu MATE 1.12.1並用的ARMv7處理器REV 3(v7l)運行此。我也在運行無密碼的sudo。
有關爲什麼發生這種情況以及如何預防它的任何建議?
編輯:我想我最初上ODROID-XU3運行,但它實際上是一個XU4。通常當用戶空間程序讀取或寫入一個非法存儲器地址發生
這是什麼'sudo chmod 777/sys/class/gpio/gpio227/*'for ?!除此之外,請閱讀文檔如何與用戶空間中的GPIO子系統進行通信,特別是使用**低**和**高**代替單獨的命令。最重要的是,您是否確切地知道您在切換GPIO時所做的工作? – 0andriy
'chmod 777'用於爲gpio227文件啓用寫入權限,因爲它們不以它開始。沒有它,當運行任何回聲方向或價值時,我會收到權限錯誤。我不必使用'777',但它更快。我會嘗試運行**低**和**高**,看看是否有效。 – user2449725
看起來您的gpio 227未導出爲將其配置爲GPO,這就是您沒有寫入權限的原因。在嘗試覆蓋它的屬性之前,檢查硬件引腳的重要性 –