簡體   English   中英

如何確定USB設備的IRQ號?

[英]How to determine the IRQ number for a USB device?

我是駕駛員開發的新手。 但是,我購買了OSR USB FX2學習套件,其中包含Windows內核/用戶模式驅動程序的示例代碼。 但是,我正在Linux(Ubuntu 12)中編寫驅動程序。 我已經能夠成功發送控制命令並從設備接收控制命令的返回。 我還能夠通過設備支持的BULK OUT / IN端點成功發送和讀取數據。

我還沒有完成一個實驗。 設備具有以下端點:

1. BULK (OUT) --> Address 0x06
2. BULK (IN)  --> Address 0x88
3. INTERRUPT (IN) --> Address 0x81

我無法弄清楚如何找到INTERRUPT(IN)端點的IRQ號 我了解如何使用以下方法安裝IRQ處理程序:

int request_irq (unsigned int irq,
                 irq_handler_t handler,
                 unsigned long irqflags,
                 const char * devname,
                 void * dev_id);

並使用正確的函數原型編寫處理程序。 但是,我想知道如何找到設備中斷的IRQ線(IRQ號)? 也就是說,如何確定上述request_irq函數中的unsigned int irq參數的值應為多少? 我通讀了《 Linux設備驅動程序,第三版》一書,該書如何確定並行端口的IRQ號。 但是,這對USB如何起作用,我將如何進行探測或找出USB設備應使用的數字呢?

如果您想了解有關USB設備驅動程序的優秀教程,則無需處理中斷。

http://www.linuxforu.com/2011/10/usb-drivers-in-linux-1/

這是學習如何編寫USB驅動程序的絕佳起點;

如果您在進行過程中遇到特定問題,請聯系我們; 發布它們,我們將看看情況如何:)

編輯

您可以使用platform_get_irq或platform_get_irq_byname來獲取設備的irq。

編輯2:

我也將您的瀏覽指向http://lwn.net/images/pdf/LDD3/ch10.pdf :-)向您展示如何檢索分配給設備的IRQ。

暫無
暫無

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

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