目錄
一 前言
二 驅動開發步驟分析
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網路驅動為例...