Linux驅動開發學習(一)

2021-10-03 05:33:21 字數 2190 閱讀 9929

1.軟體驅動

驅動硬體,使硬體處於某種工作模式,提供控制硬體方法

2.驅動的地位

驅動是連線核心與裝置的橋梁

1.字元裝置                 --->>>字元裝置驅動                   --->>> 字元裝置檔案

2.網路裝置                 --->>>網路裝置驅動

3.塊裝置                     --->>>塊裝置驅動                      --->>>塊裝置檔案

1.驅動編寫

2.驅動編譯

3.驅動使用

三要素:

1.入口(載入)

module_init (入口函式名):

int __init xx_func(void)

2.出口(解除安裝)

module_exit (解除安裝函式名) ;

void __exit ***_func (void)

3. gpl協議中明

module_license ("gpl") ;

#include

#include

int__init demo_ init(void)

void__exit demo_ exit(void)

printk("---%s---%s---%d---\n",__ file__,__func__, line__ ) ;

}module init(demo_ init);

module exit(demo_ exit);

module license("gpl");|

編譯核心模組

編譯器:gcc   交叉編譯工具

預處理、彙編、鏈結

編寫編譯核心模組的makefile

內部編譯:將核心模組原始檔放在核心原始碼申進行編譯, 修改kconfig,makefile ,配置make menuconfig

靜態編譯:將核心模組編譯進uimage中

外部編譯:將核心模組原始檔放在核心原始碼外進行編譯

動態編譯:編譯生成動態模組***. ko

模組的使用:

檢視核心模組資訊的命令:

modinfo demo.ko

$ modinfo demo.ko

filename :demo. ko

license :gpl

srcversion:cf9 6c788c51 fefa1cf2c9cd

depends :

ve rmagic:3.2.0-29-generic-pae smp mod unload modversions 686

描述:

檢視當前核心中已經插入的動態模組

lsmod

檢視核心的日誌資訊命令

dmesg

選項:-c:  清除核心日誌資訊

將核心模組載入到核心中,和核心形成乙個整體,執行。

insmod  ***x.ko              --->>>載入函式會被呼叫

將核心中的核心模組,從核心中解除安裝出來。

rmmod  ***           --->>>解除安裝函式會被呼叫

核心模組載入的時候執行載入函式,並只會執行1次。

核心模組解除安裝的時候執行解除安裝函式,並只會執行1次。

Linux驅動開發學習筆記

一 linux裝置驅動基礎 基於linux2.6核心 參考 linux device drivers 3rd edition linux kernel有乙個很好的特性,可以支援在執行是進行擴充套件。這意味著系統啟動執行是,我們仍然可以向kernel新增功能。這種執行時可以被新增到kernel的 稱為...

Linux裝置驅動開發學習步驟

最近在學習這個linux裝置驅動開放這一塊,因為是自學的所以摸不到頭緒,經過一段時間的摸索,現在又了一點認識,所以我在這裡就來寫一下 1.學會寫簡單的makefile 2.編一應用程式,可以用makefile跑起來 3.學會寫驅動的makefile 4.寫一簡單char驅動,makefile編譯通過...

Linux 驅動開發學習基本步驟

首次發表於 http www.top e.org jiaoshi html 125.html 1.首先需要對c語言程式設計非常熟悉,這是在linux下程式設計的基本條件。2.會寫簡單的makefile,編寫乙個簡單的應用程式,再寫乙個makefile,讓它能正常編譯。makefile主要目的就是用來...