[導讀]Linux下的驅動程序也沒有聽上去的那么難實現(xiàn),我們可以看一下helloworld這個例子就完全可以了解它的編寫的方式!我們還是先看一個這個例子,helloworld[1].[代碼] helloworl
Linux下的驅動程序也沒有聽上去的那么難實現(xiàn),我們可以看一下helloworld這個例子就完全可以了解它的編寫的方式!
我們還是先看一個這個例子,helloworld
[1].[代碼] helloworld.c
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <linux/module.h>//與module相關的信息#include <linux/kernel.h>#include <linux/init.h> //與init相關的函數(shù)static int __init hellokernel_init(void){ printk(KERN_INFO "Hello kernel!\n"); return 0;}static void __exit hellokernel_exit(void){ printk(KERN_INFO "Exit kernel!\n");}module_init(hellokernel_init);module_exit(hellokernel_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("xxxx"); |
[2].[代碼] Makefile
|
1
2
3
4
5
6
7
8
9
|
obj-m := helloworld.oPWD := $(shell pwd)all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean: rm -rf *.o *~ core .*.cmd *.mod.c ./tmp_version |
[3].[代碼] 執(zhí)行與運行結果
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
3)執(zhí)行make編譯成功之后會生成相應有ko文件,也就是我們想要的驅動了4)驅動程序的相關操作 a)查看ko模塊的信息 modinfo b)插入模塊 insmod helloworld.ko c)卸載模塊 rmmod helloworld d)還有一個modprobe功能,以后介紹!5)查看驅動的打印信息 使用dmesg可以查看在驅動的相關打印信息! 現(xiàn)在有例子是會有如下的打印內容:---------------------log start----------------------------[27520.195551] Exit kernel![27948.531569] Hello kernel!---------------------log end---------------------------- |





