Linux字符设备驱动
+ -

Linux字符驱动HelloWorld

2023-06-07 62 0

一个简单的驱动代码示例 :

#include<linux/init.h> 
#include<linux/module.h> 


static int hello_init(void)
{
    printk(KERN_INFO "hello pnpon.com\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_INFO "pnpon.com\n");
}

MODULE_DESCRIPTION("USB test");
MODULE_AUTHOR("my test");
MODULE_LICENSE("GPL");

module_init(hello_init); 
module_exit(hello_exit);

Makefile

obj-m += mychardev.o
all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

makefile文件如下:

#编译中间文件为.o文件
obj-m += hello_module.o

#指定linux kernel源码的目标变量
KDIR := ~/src/kenel/tc4_kenel_3.8

#当前目录
PWD ?=$( shell pwd)

#make -C 就是指调用执行的路径
#modules 示示将驱动编译成模块,最终生成.ko文件

all:
    make -C $(KDIR)  M=$(PWD) modules

clean:
    rm -rf *.o  *.mod.*  *.order  *.symvers

使用如下命令来安装驱动:

insmod hello_module.ko

执行完成上面的命令后,控制台输出:

hello pnpon.com

然后我们可以使用如下命令卸载驱动:

rmmod hello_module

控制台输出:

bye bye pnpon.com

0 篇笔记 写笔记

Linux字符驱动HelloWorld
一个简单的驱动代码示例 :#include #include static int hello_init(void){ printk(KERN_INFO "hello pnpon.com......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!