2011-03-29 39 views
3

在Linux下如何選擇使用gpio?C/C++在Linux下如何與gpio一起使用?

是否有可能使用select來創建一種中斷驅動程序, 也許在一些線程的幫助下?

我在使用select調用時應該考慮什麼?

感謝


注: 我已經閱讀選擇的人的頁面,但我想我需要一些關於這個論題更多的幫助。

  • 人3posix選擇
  • 人2選擇
  • 人2 select_tut

更新:將GPIO是在sysfs GPIO塊露出。但我不知道我是否可以使用select。

+0

我對GPIO並不十分熟悉,但它似乎與硬件有關。你能夠獲得一個指向GPIO設備的文件描述符嗎?如果是這樣,你可以用'select'來使用它。如果你不能得到一個文件描述符(也就是'int'類型的句柄),你不能使用'select'。 – 2011-03-29 21:52:09

+1

您的設備是否將GPIO作爲文件描述符呈現給用戶空間?順便說一句,你錯過了'select_tut(2)'。 – ninjalj 2011-03-29 22:42:13

+0

@ninjalj:感謝select_tut(2),看起來不錯,必須閱讀一個。 – Johan 2011-03-30 06:13:48

回答

4

顯然,您可以在通過sysfs公開的GPIO上使用select(),但前提是它可以配置爲生成中斷。你的平臺可能有或沒有。

你想要閱讀的內容是你的內核源碼中的Documentation/gpio.txt,它提到了如果內核驅動程序允許的話,如何爲引腳啓用中斷。

1

應該可以編寫多線程程序,查找中斷並在發生中斷時執行某些操作。 This blog突出顯示了在達到選擇的限制時可以執行的操作。我沒有和GPIO一起工作,但從我讀到的內容來看,GPIO不應該和上面提到的博客中討論的電話/網卡有很大不同。

相關問題