/* gprs驅動的操作函式集 */
struct file_operations gprs_fops = ;
這個結構的每乙個成員的名字都對應著乙個系統呼叫。使用者程序利用系統呼叫在對裝置檔案進行諸如read/write操作時,系統呼叫通過裝置檔案的主裝置號找到相應的裝置驅動程式,然後讀取這個資料結構相應的函式指標,接著把控制權交給該函式,這是linux的裝置驅動程式工作的基本原理。編寫裝置驅動程式的主要工作就是編寫子函式,並填充file_operations的各個域。
注意:在使用者程序呼叫驅動程式是,系統進入核心態,這是不再是搶先式排程。也就是說,系統必須在驅動程式的子函式返回後才能進行其他的工作。如果此時驅動程式陷入死迴圈,不幸的是只能重新啟動機器了。
編譯:$gcc -o2 -dmodule -d__kernel__ -c test.c 得到檔案test.o就是乙個裝置驅動程式。
如果裝置驅動程式有多個檔案,把每個檔案編譯後,$ld -r file1.0 file2.0 -o modulename
將驅動程式安裝到系統:insmod -f test.o
如果安裝成功,會在/proc/devices檔案中就可以看到裝置test,並可以看到他的主裝置號。 cat /proc/devices
解除安裝:rmmod test
建立裝置檔案:mknod /dev/test c major minor
linux驅動學習 linux中斷程式編寫流程
linux中斷 1 確定中斷號 2 申請中斷號 request irq 不用一定要釋放free irq 3 編寫中斷服務函式 request irq unsigned int irq,irq handler t handler,unsigned long flags,const char name,...
linux驅動的Makefile編寫
makefile如下 obj m hello drv.o kernel dir lib modules shell uname r build pwd shell pwd all make c kernel dir subdirs pwd modules clean rm o ko mod.c ph...
編寫Linux裝置驅動
核心版本 2.4.22 閱讀此文的目的 學會編寫linux裝置 驅動。閱讀此文的方法 閱讀以下2個 檔案 hello.c,asdf.c。此文假設讀者 已經能用c語言編寫linux應用程式,理解 字元裝置檔案,塊裝置檔案,主裝置號,次裝置號 會寫簡單的shell指令碼和makefile。1.hello...