linux下pcie裝置驅動

2021-08-03 22:20:30 字數 1282 閱讀 3324

pcie裝置驅動與platform裝置驅動的對比學習

1、驅動模組結構

1) pcie裝置註冊:module_pci_driver(***x_driver);

展開之後對應於

module_init(***x_driver)---->pci_register_drive(***x_driver)

module_exit(

***x_driver

)---->pci_unregister_drive(

***x_driver

)因此也可以採用自己編寫module_init(),module_exit()方式使用。

2) platform裝置註冊:module_platform_driver(gpio_led_driver);

2、裝置驅動結構體

1)pcie裝置

static struct pci_driver ***x_driver = ;

2)platform裝置

static struct platform_driver

***x_driver = ,

};3、匹配裝置表

1) pcie裝置

static const struct pci_device_id ***x_table = ,

//內容為裝置的號、廠商號,用於判別裝置,與匯流排上掃瞄到的裝置匹配

};module_device_table(pci, ***x_table);

2)platform裝置

static const struct of_device_id of_gpio_leds_match = ,

//主要用於和裝置樹進行匹配

{},};module_device_table(of, of_gpio_leds_match);

4、probe函式

1) pcie裝置

static int

***x

_probe(struct pci_dev *pdev,

const struct pci_device_id *id) //

pcie裝置id:廠商號、裝置號、類等資訊

2)platform裝置

static int

***x

_probe(struct platform_device *pdev)

總結:pcie裝置驅動是註冊在pcie匯流排的,對應的裝置是通過pcie匯流排控制器管理,因此其裝置與驅動的匹配方式與platform匯流排上不同;同樣usb匯流排、i2c匯流排等與pcie匯流排相似,由匯流排負責匹配、驅動管理等工作。

linux裝置驅動之PCIE驅動開發

pcie pci express 是intel提出的新一代的匯流排介面,目前普及的pcie 3.0的傳輸速率為8gt s,下一代pcie 4.0將翻番為16gt s,因為傳輸速率快廣泛應用於資料中心 雲計算 人工智慧 機器學習 視覺計算 顯示卡 儲存和網路等領域。pcie插槽是可以向下相容的,比如p...

PCIe裝置驅動demo

pcie pci express 是intel提出的新一代的匯流排介面,目前普及的pcie 3.0的傳輸速率為8gt s,下一代pcie 4.0將翻番為16gt s,因為傳輸速率快廣泛應用於資料中心 雲計算 人工智慧 機器學習 視覺計算 顯示卡 儲存和網路等領域。pcie插槽是可以向下相容的,比如p...

Linux下PCIe驅動以及DMA機制

1.驅動程式作用 裝置驅動程式向應用程式遮蔽了硬體在實現上的細節,使得應用程式可以像操作普通檔案一樣操作外部裝置。linux 作業系統抽象了對硬體的處理,可以使用和操作檔案相同的,標準的系統呼叫介面來完成開啟,關閉,讀寫喝 i o控制操作,而驅動程式主要任務也就是實現這些系統呼叫函式。每個裝置檔案對...