在Linux下如何選擇使用gpio?C/C++在Linux下如何與gpio一起使用?
是否有可能使用select來創建一種中斷驅動程序, 也許在一些線程的幫助下?
我在使用select調用時應該考慮什麼?
感謝
注: 我已經閱讀選擇的人的頁面,但我想我需要一些關於這個論題更多的幫助。
- 人3posix選擇
- 人2選擇
- 人2 select_tut
更新:將GPIO是在sysfs GPIO塊露出。但我不知道我是否可以使用select。
在Linux下如何選擇使用gpio?C/C++在Linux下如何與gpio一起使用?
是否有可能使用select來創建一種中斷驅動程序, 也許在一些線程的幫助下?
我在使用select調用時應該考慮什麼?
感謝
注: 我已經閱讀選擇的人的頁面,但我想我需要一些關於這個論題更多的幫助。
更新:將GPIO是在sysfs GPIO塊露出。但我不知道我是否可以使用select。
顯然,您可以在通過sysfs公開的GPIO上使用select(),但前提是它可以配置爲生成中斷。你的平臺可能有或沒有。
你想要閱讀的內容是你的內核源碼中的Documentation/gpio.txt,它提到了如果內核驅動程序允許的話,如何爲引腳啓用中斷。
應該可以編寫多線程程序,查找中斷並在發生中斷時執行某些操作。 This blog突出顯示了在達到選擇的限制時可以執行的操作。我沒有和GPIO一起工作,但從我讀到的內容來看,GPIO不應該和上面提到的博客中討論的電話/網卡有很大不同。
我對GPIO並不十分熟悉,但它似乎與硬件有關。你能夠獲得一個指向GPIO設備的文件描述符嗎?如果是這樣,你可以用'select'來使用它。如果你不能得到一個文件描述符(也就是'int'類型的句柄),你不能使用'select'。 – 2011-03-29 21:52:09
您的設備是否將GPIO作爲文件描述符呈現給用戶空間?順便說一句,你錯過了'select_tut(2)'。 – ninjalj 2011-03-29 22:42:13
@ninjalj:感謝select_tut(2),看起來不錯,必須閱讀一個。 – Johan 2011-03-30 06:13:48