register_chrdev函数使用
2023-12-15 22:38:12
static struct class *led_class;
static int major = 0; /*记得static 不然可能会出现外部.c调用这个变量的可能*/
static struct file_operations led_drv = {
.owner = THIS_MODULE,
.open = led_drv_open,
.read = led_drv_read,
.write = led_drv_write,
.release = led_drv_close,
};
major = register_chrdev(0, "sym", &led_drv); /*sym是设备名称,任取,led_drv是
file_operations的名字*/
/*可以实现静态和动态注册两种方法,主要是通过判断给定的主设备号是否为0来进行区别,为0的时候为
动态注册,否则静态注册*/
if(major < 0){
printk("register_chrdev famy\n");
return major;
}
led_class = class_create(THIS_MODULE, "sym_class");/*sym_class是类的名字,任取*/
if(IS_ERR(led_class)){
printk("class_create failed\n");
unregister_chrdev(major, "sym");
return 1;
}
一文搞懂内核中cdev的各种注册函数 - 知乎 (zhihu.com)
注册函数不仅仅有register_chrdev 还有其他,见上文
文章来源:https://blog.csdn.net/symsyq/article/details/135025714
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!