字符驱动之按键(一:无脑轮询法)
生活随笔
收集整理的這篇文章主要介紹了
字符驱动之按键(一:无脑轮询法)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、添加頭文件二、構(gòu)造fileoperation結(jié)構(gòu)體static struct fileoperations second_drv_fops = {.owner = THIS_MODULE;.open = second_drv_open;.write = ;second_drv_write}三、填充file_operations中的成員函數(shù)
static int second_drv_open(struct inode *inode,struct file *file)
{return 0;
}ssize_t second_drv_read(struct file *file,char __user *buf,size_t size,loff_t *ppos)
{return 0;
}還有初始化函數(shù)static int second_drv_init(void)
{major = register_chrdev(0,"second_drv",&second_drv_fops);return 0;
}static int second_drv_exit(void)
{unregister_chrdev(major,"second_drv");return 0;
}module_init(second_drv_init);
module_exit(second_drv_exit);要使用udev(mdev機(jī)制)根據(jù)信息來(lái)創(chuàng)造設(shè)備節(jié)點(diǎn)先創(chuàng)建一個(gè)class,再創(chuàng)建一個(gè)設(shè)備。
定義兩個(gè)結(jié)構(gòu)體:
static struct class *seconddrv_class;
static struct class_device *seconddrv_class_dev;static int second_drv_init(void)
{
//創(chuàng)建一個(gè)類,在類下面創(chuàng)建一個(gè)設(shè)備。
//mdev是udev的簡(jiǎn)化版本major = register_chrdev(0,"second_drv",&second_drv_fops);seconddrv_class = class_create(THIS_MODULE,"seconddrv");seconddrv_class_dev = class_device_create(seconddrv_class,NULL,MKDEV(major,0),NULL,"buttons");return 0;
}static void second_drv_exit(void)
{unregister_chrdev(major,"first_drv");class_device_unregister(seconddrv_class_dev);class_destroy(seconddrv_class);
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/stm32f4/p/8335104.html
總結(jié)
以上是生活随笔為你收集整理的字符驱动之按键(一:无脑轮询法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 国外centos服务器配置epel源
- 下一篇: linux的/etc/hosts的作用