打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
什么是miscdev类驱动?
userphoto

2011.01.24

关注
  如果要详细的分驱动的类型,分为miscdev、character、block、net。
这里两天在学习mini2440的时候发现,很多的驱动都是miscdev类,本人学识浅薄,尽然不知道miscdev为何物,经过查证终于知其所以然。
 
  1. 什么是miscdev类驱动?答:miscdev类驱动又叫混杂驱动驱动 ,是一个比较原始的东西,在1998年就已经提出来了,在2.0以上的kernel都有支持。可以认为小驱动程序,主要用于简单的硬件驱动或者简单的测试。
  2. 为什么在miscdev类驱动中没有看见主设备号之类的东西?答:miscdev类的驱动,默认的主设备号是10,所以这类驱动,你只需要指定从设备号就可以了,实质上,你也不能指定它的主设备好。

    struct miscdevice {
            int minor;
            const char *name;
            struct file_operations *fops;
            struct miscdevice *next, *prev;
    };


    上边是它的结构,从结构中可以看到,你只需要指定从设备号,struct file_operations 和设备名就可以了
  3. 主要用于什么?
答: 当然用于测试简单的程序和一些简单的I/O外部硬件或设备了,可以节省主设备号。其他就没什么了,所以比如LED、按键、RTC等,都可以用这个小驱动程序写了。
 
linux设备驱动信息的查看:
/proc/devices 查看系统支持的字符设备和块设备驱动;
/proc/pci 查看系统的PCI设备;
/proc/ioports 查看设备的IO端口;
/proc/interrupts 查看正在使用的中断号,中断次数;
/proc/net/dev 查看网络硬件设备,包括被down的网卡;
/proc/kallsyms 查看模块符号;
/proc/jitimer 查看定时器;
dmesg 查看系统的启动信息,可以看到系统支持的一些驱动的打印信息;
lspci
lsusb -v
uname -a
ifconfig -a 查看所有网卡

字符设备驱动, GPIO驱动:
一些概念:
    dev_t为32位设备号(12+20);   scull_dev结构, cdev结构
    老注册方法:   register_chrdev(major, &name, &fops)
                            unregister_chrdev(major, &name)
    新注册方法:   regist_chrdev_region(dev_t, count, &name);
                            alloc_chrdev_region(&dev, firstminor, count, &name);
                            major = MAJOR(dev);
                            cdev_init(&cdev, &fops);   cdev. owner=THIS_MODULE;   cdev.ops=&fops;
                            cdev_add(&cdev, devno, 1);   cdev_del(&cdev);
                            unregister_chrdev_region( first, count);
关于中断:
    处理器管理设备的方式, 轮询, 中断+DMA;
    S3C2410支持56个中断设备, 32个中断号;   SRCPND, INTPND, INTMSK 写1清0;
    request_irq(irq, &handler, flags, &dev_name, &dev_id);         free_irq(irq, &dev_id);

http://linux.chinaunix.net/bbs/thread-1131292-1-1.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux设备驱动归纳总结(三):1.字符型设备之设备申请
miscdev类驱动
Linux驱动编写框架
devfs_mk_cdev 与devfs_register引用 ARM嵌入式LINUX设备驱动设计入 - 嵌入式驱动开发 - wuyunzdh
Linux内核开发之简单字符设备驱动(下)
第三章 字符设备驱动程序|Linux.CN
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服