linux 驱动学习-1th

来源:互联网 发布:桐乡淘宝摄影基地 编辑:程序博客网 时间:2024/05/01 20:21

linux 驱动学习1th,linux驱动程序的大致框架。

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


1.模块加载函数(必须)-----当通过insmod命令加载内核模块时,模块的加载函数会自动被内核执行,以完成本模块的相关初始化工作;
2.模块卸载函数(必须)-----当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的功能;
3.模块许可证声明(必须)---模块许可证(LICENSE)声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核被污染的警告;
4.模块参数(可选)---------模块参数是模块被加载时可以传递给它的值,它本身对应模块内部的全局变量;
5.模块导出符号(可选)-----内核模块可以导出符号(symbol,对应于函数或变量),这样其它模块可以使用本模块中的变量或函数;
6.模块作者等信息声明(可选);


1.模块加载函数
static int  __init initialization_function(void)
{
     
}
module_init(initialization_function);
2.模块卸载函数
static void  __exit cleanup_function(void)
{
      
}
 module_exit(cleanup_function);
3.模块许可证声明
MODULE_LICENSE("GPL");
MODULE_LICENSE("Dual BSD/GPL");
4.模块参数
module_param(xxx);
5.模块导出符号
EXPORT_SYMBOL(name);
EXPORT_SYMBOL_GPL(name);
6.模块作者等信息声明
MODULE_AUTHOR("onejacky wanshijie@126.com");
0 0