我期待在Linux中實現CAN總線通信的驅動程序。
需要一些設計建議。如何處理 - 快速tx&接收數據---設備驅動程序Linux
的Linux有用戶空間&內核空間。驅動程序在內核空間應用程序的用戶空間運行
1>如果以非常高的速度,然後在接收數據包的驅動程序如何管理這種情況現在假設?
2>如果數據包必須以高速率傳輸,然後該怎麼辦?
3>如何數據應用戶&內核空間之間移動。我們應該使用系統調用還是使用一些快速機制?
4>它可以在內核級別的線程中完成嗎?但是如果有兩個線程運行在內核級從TX總線上發送到來自CAN總線的& RX,那麼我們是否必須使用互斥來保存關鍵部分(即我們的內部寄存器)
5>如果假設共享庫用於從應用程序訪問驅動程序。 共享庫可以使用系統調用訪問驅動程序功能嗎?
完全混淆了什麼應該是正確的做法。
請建議。任何答覆都是可觀的。
您正在使用哪個CAN控制器,可能它的驅動程序將在Linux上提供,您可以使用設備節點直接訪問它。 –
可能是我解釋錯了位。我剛剛舉了一個例子--- CAN總線 - 問題是一個普遍的問題,可以應用於任何通信設備,如CAN總線,Usart,原始以太網。請建議。 – Katoch
重新發明之前,您應該調查現有的驅動程序實現。爲什麼你認爲現有的實現不夠「快」?也許你可以嘗試對現有方案進行漸進式改進。開源軟件的一個優勢是不必始終從頭開始。如果代碼必須是專有的,那麼也許應該避免Linux一起。 – sawdust