新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的無線網(wǎng)卡設(shè)備驅(qū)動方案

基于ARM的無線網(wǎng)卡設(shè)備驅(qū)動方案

作者: 時間:2012-12-29 來源:網(wǎng)絡(luò) 收藏

圖2 LinUX網(wǎng)絡(luò)驅(qū)動程序結(jié)構(gòu)

  2.2.1 USB驅(qū)動設(shè)備的訪問和控制

  與PCI,ISA等設(shè)備不同,USB,1394等新一代總線沒有IO/MEM映射、中斷和DMA硬件資源,取而代之的是抽象出來的硬件資源概念。對USB設(shè)備來說,資源主要包括配置(configuration)、接口(interface)和端點(diǎn)(endpoint)。這些資源中,端點(diǎn)對于USB設(shè)備有著最重要的意義,實(shí)際的數(shù)據(jù)傳輸就是通過端點(diǎn)的讀寫實(shí)現(xiàn)的。驅(qū)動程序通過描述符來獲取這些資源。在初始化時,USB驅(qū)動程序從設(shè)備端點(diǎn)0讀取描述符,經(jīng)過解析后保存這些資源的屬性,為傳輸數(shù)據(jù)做準(zhǔn)備。

  2.2.2 USB網(wǎng)絡(luò)程序設(shè)計(jì)

  USB驅(qū)動程序首先向USB子系統(tǒng)注冊自己,然后通過vendor id和device id來判斷硬件設(shè)備是否已經(jīng)插入總線,攝像頭驅(qū)動程序需要創(chuàng)建一個

  當(dāng)插入U(xiǎn)SB總線時,USB core就會調(diào)用Probe方法來檢測被傳遞進(jìn)來的信息,以確定無線網(wǎng)卡設(shè)備是不是與驅(qū)動程序匹配,同時填充struct net_device完成對該網(wǎng)絡(luò)設(shè)備的初始化。當(dāng)無線網(wǎng)卡被拔出時,USB core就會調(diào)用Disconnect方法來完成清除工作。驅(qū)動程序通過顯示模塊的初始化和消除函數(shù)注冊與注銷模塊調(diào)用module_init來初始化一個模塊,并在卸載時調(diào)用moduel_exit函數(shù)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉