Linux驅動開發原始碼分析

2021-10-14 15:54:31 字數 1476 閱讀 7974

目錄

一 前言

二 驅動開發步驟分析

1驅動模組都有兩個函式:

2實現初始化函式和退出函式;

3初始化函式分析

3.1通過函式register_chrdev()註冊如下結構體

3.2通過裝置類函式class_register()註冊

3.3呼叫spi_register_driver()

4退出函式分析登出spi驅動、登出spi裝置類、登出spi字元裝置

5具體底層函式實現

三 總結

分析linux驅動**結構,spi裝置驅動舉例

module_init(spidev_init);

module_exit(spidev_exit);

static int __init spidev_init(void)

status = spi_register_driver(&spidev_spi);

if (status < 0)

return status;

}

static void __exit spidev_exit(void)

static struct file_operations spidev_fops = ;
static struct class spidev_class = ;
static struct spi_driver spidev_spi = ,

.probe = spidev_probe,

.remove = __devexit_p(spidev_remove),

/* note: suspend/resume methods are not necessary here.

* we don't do anything except pass the requests to/from

* the underlying controller. the refrigerator handles

* most issues; the controller driver handles the rest.

*/};

spi_unregister_driver(&spidev_spi);

class_unregister(&spidev_class);

unregister_chrdev(spidev_major, spidev_spi.driver.name);

spidev_write,

spidev_read,

spidev_ioctl,

spidev_open,

spidev_release,

了解驅動裝置實現流程,呼叫關係;

job 觸發原始碼分析

基礎 wordcount.scala 小應用 1 val lines sc.textfile 2 val words lines.flatmap line line.split 3 val pairs words.map word word,1 4 val counts pairs.reduceby...

Android開發 原始碼資源彙總

全網最全的android遊戲原始碼彙總 androidui設計之高仿系列 全網最全的android原始碼彙總 幾百個android原始碼 不斷更新中 contentprovider專題 android多執行緒開發專題 github開源專案總結 匯集的幾十個android原始碼 android開源專案...

Linux網路驅動原始碼分析 一

網路驅動是一種典型的pci裝置驅動,無論在嵌入式平台還是在pc領域,網路相關的專案開發有著比較廣闊的前景,因此,分析當前linux核心中網路裝置的驅動,不但能了解網路相關的基本原理,而且可以借鑑linux核心的先進的技術,將其應用到嵌入式或其他領域。本文以linux核心中的rtl8139網路驅動為例...