HelloWorld驱动编写和加载驱动实验

Helloworld驱动实验

在学习 C 语言或者其他语言的时候,我们通常是打印一句“helloworld”来开启编程世界
的大门。学习驱动程序编程亦可以如此,使用 helloworld 作为我们的第一个驱动程序。
接下来开始编写第一个驱动程序—helloworld。

驱动编写

编写一个最简单的驱动——helloworld 驱动。helloworld.c 如下

#include <linux/module.h>   //模块加载函数和卸载函数需要的头文件
#include <linux/kernel.h> 
static int __init helloworld_init(void)       //驱动的入口函数
{
   
	printk(KERN_EMERG "helloworld_init\r\n"); //注意:内核打印用的是printk,而不是printf
	return 0;
}
static void __exit helloworld_exit(void)      // 驱动的入口函数
{
   
	printk(KERN_EMERG "helloworld_exit\r\n");
}

module_init(helloworld_init);           // 注册入口函数
module_exit(helloworld_exit);           // 注册出口函数
MODULE_LICENSE("GPL v2");               // 同意GPL开源协议
MODULE_AUTHOR("topeet");                //作者信息

驱动的基本框架

Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,
模块导出符号,模块作者信息等几部分组成,其中模块参数,模块导出符号,模块作者信息是
可选的部分,也就是可要可不要。剩余部分是必须有的。我们来看一下这几个部分的作用:
1、 模块加载函数
当使用加载驱动模块时,内核会执行模块加载函数,完成模块加载函数中的初始化工作。

2 、模块卸载函数
当卸载某模块时,内核会执行模块卸载函数,完成模块卸载函数中的退出工作。

3、 模块许可证声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值