Linux字符设备驱动
+ -

Linux字符驱动HelloWorld

2023-06-07 21 0

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

#include<linux/init.h> // 模块出入口宏的声名头文件
#include<linux/module.h> //模块声名信息宏所需要的头文件

MOULE_LICENSE("GPL"); //声名驱动遵循GPL协议
MOULE_ARUTHOR("www.pnpon.com"); // 驱动作者
MODULE_DESCRIPTOTR("hello pnpon.com"); // 驱动描述

//入口函数
static int hello_init(void)
{
    printf(KERN_INFO,"hello pnpon.com\n");
    return 0;
}

//出口函数
static void hell_exit(void)
{
    printf(KERN_INFO,"pnpon.com\n")
}

module_init(hello_init); //模块入口
module_exit(hello_exit); //模块退出

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 //模块声名信息宏所需要的头文件MOULE_LICENSE("GPL"); //声名驱动遵循GP......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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