當使用 echo 0 > /sys/class/gpio/export
kernel卻拋出 -sh: echo: write error: Device or resource busy
這表示此GPIO正被某個driver占用,因此你沒辦法申請這個GPIO來使用
而這個問題的解決方法,只能找出是哪個driver code, 做完 gpio_request()之後 卻沒有做 gpio_free()的地方
另外可以使用下面指令來查看那些gpio被占用
cat /sys/kernel/debug/gpio
=======================================================
另外下面記錄一些gpio操作的指令
第一步可以先ls /sys/class/gpio,有的可以從這邊看到gpio的base值
(例如base=268, gpio0在下面的操作就要echo 268+0, gpio10就會是 268+10)
1. request gpio
echo 0 > /sys/class/gpio/export
2. check dicrection value
cat /sys/class/gpio/gpio0/direction
3. change direction
echo out > /sys/class/gpio/gpio0/direction
4. check output value
cat /sys/class/gpio/gpio0/value
5. change output value to high
echo 1 > /sys/class/gpio/gpio0/value
6. free the gpio
echo 0 > /sys/class/gpio/unexport
沒有留言:
張貼留言