Linux驱动 2026年4月10日 3 分钟

Linux 字符设备驱动开发详解

从零开始学习 Linux 字符设备驱动开发,包含完整的驱动框架和代码示例。
本文目录 展开目录

字符设备驱动框架

字符设备是 Linux 驱动中最基础的设备类型,按字节流方式访问,如串口、LED、按键等。

核心数据结构

struct cdev {
    struct kobject kobj;
    struct module *owner;
    const struct file_operations *ops;
    struct list_head list;
    dev_t dev;
    unsigned int count;
};

驱动框架

static struct file_operations fops = {
    .owner = THIS_MODULE,
    .open = my_open,
    .release = my_release,
    .read = my_read,
    .write = my_write,
};

static int __init my_driver_init(void) {
    // 1. 分配设备号
    alloc_chrdev_region(&dev, 0, 1, "mydev");

    // 2. 初始化 cdev
    cdev_init(&my_cdev, &fops);

    // 3. 注册设备
    cdev_add(&my_cdev, dev, 1);

    return 0;
}

总结

掌握字符设备驱动框架是学习 Linux 驱动开发的基础。

上一篇 返回专栏目录

回到当前专栏,继续选择其它文章。

下一篇 驱动环境搭建

今日主要内容 1.windows主机和开发环境文件整理 正点原子的源码分为配置好的和学习用的路径在电脑中的位置分别如下 ...