第一个驱动helloworld

驱动分为四个部分

头文件

驱动模块的入口和出口

声明信息

功能实现

 

第一步,包含头文件

#include <linux/init.h>   //包含宏定义的头文件
#include <linux/mudule.h> //包含初始化加载模块的头文件    

第二部,驱动模块的入口和出口

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

第三步,声明模块拥有开源许可证

MODULE_LICENSE("GPL");

第四部,功能实现

static int hello_init(void)
{
    printk("hello world\n"); 
    return 0;
}


static int hello_exit(void)
{
    printk("bye bye\n"); 
    return 0;
}  

内核模块加载的时候打印hello world,内核模块卸载的时候打印bye bye

注意:内核打印函数不能用printf,因为内核没有办法使用C语言库

 

整体代码如下:

#include <linux/init.h>   //包含宏定义的头文件
#include <linux/mudule.h> //包含初始化加载模块的头文件    

static int hello_init(void)
{
    printk("hello world\n"); 
    return 0;
}


static int hello_exit(void)
{
    printk("bye bye\n"); 
    return 0;
}  

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

MODULE_LICENSE("GPL");

 

上一篇:分布式高并发都不会还做Java程序员,三年*ava经验面经


下一篇:MarkDown学习