詳解嵌入式Linux的USB驅動設計
1.3.4 設備注銷
skel_disconnect()函數在注銷設備時被調用,定義如下:
2 USB串口驅動
2. 1 驅動初始化函數
usb_serial_init()函數是一個典型的USB設備驅動初始化函數,定義如下:
函數首先調用alloc_tty_driver()函數分配一個串口驅動描述符;然后設置串口驅動的屬性,包括驅動的主從設備號、設備類型、串口初始化參數等;串口驅動描述符設置完畢后,調用usb_register()函數注冊USB串口設備。
2. 2 驅動釋放函數
2.3 串口操作函數
USB串口設備驅動使用了一個tty_operations類型的結構,該結構包含了串口的所有操作,定義如下:
按上述的步驟和方法通過lnsmod命令成功實現了USB驅動程序的加載,成功的通過USB串口進行了數據的讀寫。
3 結論
新出的Linux2.6內核加入了對USB2.0的支持,重新定義了usb_class_driver結構體。同時對探測函數probe和usb_submit_urb做了修改,包含了advanced linux sound Archiecture可以更安全的使用USB設備。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論