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主要目的就是用來...