zoukankan      html  css  js  c++  java
  • linux2.6字符设备的标准注册方法

    关于字符设备的注册,标准的2.6中可以这样做:

    static struct cdev dev;
    static int wmsc_dev_init(void)
    {
    int ret;
    dev_id = MKDEV(DEV_MAJOR,0);
    ret = register_chrdev_region(dev_id,1,DEV_NAME);
    if(ret < 0){
    printk(KERN_ERR"Can't register device,maybe the device id has been used.\n");
    unregister_chrdev_region(dev_id,1);
    return ret;
    }
    cdev_init(&dev,&fops);
    ret = cdev_add(&dev,dev_id,1);
    if(ret < 0){
    printk(KERN_ERR"Can't add device.\n");
    cdev_del(&dev);
    return ret;
    }
    return 0;
    }

    #define DEV_MAJOR 178
    #define DEV_NAME "gpio"

    static struct file_operations fops = {
    .open = wmrc_open,
    .read = wmrc_read,
    .write = wmrc_write,
    .ioctl = wmrc_ioctl,
    .owner = THIS_MODULE,
    };

    后面就是些设备加载,和节点创建等,如下:

    insmod xx.ko

    mknod /dev/gpio c 177 0
    chmod 766 /dev/gpio

    这些流程是挺正确的,也有固定的流程,不用深归内部的原理,制作驱动还是要深入的算法里面的。
  • 相关阅读:
    cae when分组统计
    查看 Chrome 下载的文件的真实下载地址
    directory opus使用教程
    文件内容极速搜索工具: silversearcher-ag
    LINUX SHELL 变量的二次引用
    JS小练习
    jQuery
    JS-BOM对象
    JS-DOM对象
    JavaScript-基础知识
  • 原文地址:https://www.cnblogs.com/fishoneseaatblog/p/2340974.html
Copyright © 2011-2022 走看看