一.流程:
1.构造file_operation
static const struct file_operations gpio_led_fops ={
.owner = THIS_MODULE,
.read = gpio_drv_read,
.write = gpio_drv_write,
};
2.实现read、write函数
static ssize_t gpio_drv_read (struct file *file, char __user *buf, size_t size, loff_t *offset)
static ssize_t gpio_drv_write (struct file *file, const char __user *buf, size_t size, loff_t *offset)
3.初始化入口函数
static int __init gpio_drv_init(void)
4.退出
static void __exit gpio_drv_exit(void)
最后通过
module_init(gpio_drv_init);
module_exit(gpio_drv_exit);
即可实现初始化入口和出口函数向内核中注册。
就是这么easy。
二.实现
copy_from_user and copy_to_user