Linux 內核USB 接口配置


USB 接口是自己被捆綁到配置的. 一個 USB 設備可有多個配置並且可能在它們之間轉換 以便改變設備的狀態. 例如, 一些允許固件被下載到它們的設備包含多個配置來實現這個. 一個配置只能在一個時間點上被使能. Linux 處理多配置 USB 設備不是太好, 但是, 幸 運的是, 它們很少.

 

linux 描述 USB 配置使用結構 struct usb_host_config 和整個 USB 設備使用結構 struct usb_device. USB 設備驅動通常不會需要讀寫這些結構的任何值, 因此它們在這 里沒有詳細定義. 好奇的讀者可在內核源碼樹的文件 include/linux/usb.h 中找到對它 們的描述.

 

一個 USB 設備驅動通常不得不轉換數據從給定的 struct usb_interface 結構到 struct usb_device 結構, USB 核心需要給很多的函數調用. 為此, 提供有函數 interface_to_usbdev. 在以后, 希望所有的當前需要一個 struct usb_device 的 USB 調用, 將被轉換為采用一個 struct usb_interface 參數, 並且不會要求驅動做這個轉換.

 

所以總結, USB 設備是非常復雜的, 並且由許多不同邏輯單元組成. 這些單元之間的關系 可簡單地描述如下:

 

設備通常有一個或多個配置.

  • 配置常常有一個或多個接口
  • 接口常常有一個或多個設置.
  • 接口有零或多個端點.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM