一、框架
1.头文件
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
2.自定义的功能函数
/*初始化*/
static int __init demo_init(void)
{
//1.构造设备/驱动对象
//2.初始化设备/驱动对象
//3.注册设备/驱动对象
//4.必要的硬件初始化
return 0;
}
/*卸载*/
static void __exit demo_exit(void)
{
//1.回收清理
//2.注销
//3.关闭相关,或者一些收场工作
}
3.注册初始化和卸载函数(标准接口)
module_init(demo_init);
module_exit(demo_exit);
4.描述信息 (标准接口)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Farsight");
MODULE_DESCRIPTION("Demo for kernel module");
二、按标准封装
1.设备结构体模型
struct device {
//打开设备
//关闭设备
//读设备
//写设备
//...
//特征(变量)
}