簡體   English   中英

Linux上的用戶空間串行通信庫

[英]Userspace Serial communication Library on Linux

我需要開發一個(用戶空間)庫來處理Linux上的串行通信(在Zynq-Zybo板上:UART,SPI,I2C)。
我瀏覽了各種網站和資料,並研究了xilinx-linux內核,以及有關O'Reilly Linux Device Drivers的一些參考。
到目前為止,我發現:Linux已經包含自己的內核模塊來處理通信(例如:UART內核模塊處理外圍設備,以便它們顯示在/ dev /中,並且可以通過該設備文件與該設備進行交互。從用戶空間使用打開,讀取,寫入等)。
我還讀到,作為一種常見的模式,與設備驅動程序的交互是通過字符設備驅動程序完成的,該字符設備驅動程序在用戶空間中訪問,並負責與設備驅動程序的交互(下圖中的詳細信息)
在此處輸入圖片說明

我想到的想法是:

  • 編寫一個用戶空間庫,該庫通過經典的open,read,write與所提供的設備文件(在/ dev / ..中)進行簡單交互
  • 參考上圖,開發一個字符設備驅動程序,並將此模塊包含在內核中,以便用戶空間庫僅通過IOCTL(或類似方法)與之交互,然后此新模塊將直接與(現有)設備進行交互司機
    (但是,這種解決方案對我來說聽起來不太好:我讀到在內核模塊內部使用用戶空間之類的東西,例如open,read,write並不是一個好主意-盡管可能)-

我的問題是:我應該采用哪種方式,為什么?
此外,無論關於該主題的任何文章/書籍/鏈接都將受到高度贊賞。
提前致謝!

快速搜索中似乎有很多庫,所以不確定為什么要發明輪子,例如https://www.acmesystems.it/user_i2c

但是無論如何,如果它是新型的總線/設備,那么用戶空間庫始終是一個好方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM