1 驅動作為核心模組存在,相當於乙個核心動態庫。
2 驅動提供一系列實現好的介面,並將其註冊到作業系統中,等待作業系統按需呼叫。
3 驅動的初始化、介面註冊等工作由init_module函式完成。該函式類似於windows 驅動中的driverentry。
4 init_module主要完成以下工作
1) 獲取裝置號。可以通過手工指定或者系統動態分配方法獲取裝置號。
2) 初始化裝置物件,儲存cdev
5 使用container_of(pointer, struct, field)巨集可以獲得結構體的指標。這樣,就可以從cdev指標獲取使用者自定義的裝置物件了。
6 在核心中,對使用者態位址空間的訪問應該通過copy_to_user和copy_from_user進行。由於可能存在調業情況,所以對使用者位址空間訪問的**必需是可重入的。必要時要進行同步操作。
Linux 2 6 驅動模板
obj m vs10xx.o vs10xx objs vs10xx.o kerneldir home kerson linux 2.6.39 pwd shell pwd modules make c kerneldir m pwd modules cp vs10xx.ko armnfs phony ...
linux驅動字元裝置模板
基於linux 4.4版本,板載6410 include 包含file operation結構體 include 包含module init module exit include 包含license的巨集 include 包含copy to user之類 include include 包含ior...
Linux驅動模組編譯模板
hello.c檔案 include include static int hello init void static void hello exit void module init hello init module exit hello exit module author vedic mod...