新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 詳解嵌入式Linux的USB驅動設計

        詳解嵌入式Linux的USB驅動設計

        作者: 時間:2014-01-22 來源:網絡 收藏

        詳解嵌入式Linux的USB驅動設計

        圖2 程序層次圖

        1.3 程序框架

          1.3.1 基本數據結構

          usb-skel設備使用自定義結構usb_skel記錄設備驅動用到的所有描述符,該結構定義如下:

        詳解嵌入式Linux的USB驅動設計

          1.3.2 驅動程序初始化和注銷

          同其他所有的設備驅動程序一樣,usb-skel驅動使用module_init()宏初始化函數,使用module_exit()宏注銷函數。usb-skel驅動的初始化函數usb_skel_init()函數,定義如下:

        詳解嵌入式Linux的USB驅動設計

          sb_skel_init()函數調用內核提供的usb_register()函數注冊了一個usb_driver類型的結構變量,該變量定義如下:

        詳解嵌入式Linux的USB驅動設計

          其中usb_skel設備的USB ID映射表定義如下:

        詳解嵌入式Linux的USB驅動設計

          在中調用usb_deregister()函數注銷usb-skel設備驅動,函數定義如下:

        詳解嵌入式Linux的USB驅動設計

          1.3.3 初始化設備

          從skel_driver結構可以知道usb-skel設備的初始化函數是skel_probe()函數,設備初始化主要是探測設備類型,分配USB設備用到的urb資源,注冊USB設備操作函數等。

          skel_class結構變量記錄了usb-skel設備信息,定義如下:

        詳解嵌入式Linux的USB驅動設計

          name變量使用%d通配符表示一個整型變量,當一個usb-skel類型的設備連接到USB總先后會2按照子設備編號自動設置設備名稱。Fops設備操作函數結構變量,定義如下:

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: USB驅動 Linux USB接口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 翁源县| 奉化市| 张北县| 曲麻莱县| 泰安市| 奈曼旗| 赣榆县| 三亚市| 商南县| 土默特右旗| 竹山县| 岳西县| 徐州市| 沙河市| 靖西县| 嘉鱼县| 涟水县| 富源县| 夏津县| 青海省| 安泽县| 韶山市| 贵港市| 枣强县| 商水县| 西乌| 内丘县| 黄山市| 清丰县| 金川县| 察哈| 连山| 车致| 霍州市| 涟水县| 高雄市| 盐津县| 虞城县| 淳安县| 昌吉市| 建水县|