Linux MISC 驱动

1.misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某
些外设无法进行分类的时候就可以使用 MISC 驱动。

2.所有的 MISC 设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。随着 Linux
字符设备驱动的不断增加,设备号变得越来越紧张,尤其是主设备号, MISC 设备驱动就用于解
决此问题。 MISC 设备会自动创建 cdev,不需要像我们以前那样手动创建,因此采用 MISC 设
备驱动可以简化字符设备驱动的编写。

3.定义一个 MISC 设备(miscdevice 类型)以后我们需要设置 minor、 name 和 fops 这三个成员
变量。 minor 表示子设备号, MISC 设备的主设备号为 10。

4.misc驱动注册,可以直接使用 misc_register 一个函数来完成“传统的创建设备过程”。
    传统的创建设备过程:
        alloc_chrdev_region(); // 申请设备号  
        cdev_init();                  // 初始化 cdev 
        cdev_add();                 // 添加 cdev   
        class_create();            // 创建类      
        device_create();          // 创建设备  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux驱动开发是指在Linux操作系统下开发和编写设备驱动程序的过程。设备驱动程序是操作系统与硬件之间的桥梁,负责将操作系统的指令翻译成硬件可以理解的信号和命令,从而实现对硬件设备的控制和管理。 Linux驱动开发涉及到多个方面的知识和技术,包括设备文件的创建、设备的注册和初始化、中断处理、内存管理、驱动的加载与卸载等。下面分别对这些方面进行详细解释: 1. 设备文件的创建:在Linux系统中,每个设备都被视为一个特殊文件。驱动开发者需要通过创建设备文件来与硬件设备进行交互。这可以通过使用mknod命令或者udev规则来完成。 2. 设备的注册和初始化:驱动程序需要将自己注册到Linux内核中,以便操作系统能够正确地识别和调用驱动程序。这可以通过调用相关的注册函数(如platform_driver_register()或者misc_register())来完成。同时,驱动程序还需要对设备进行初始化,包括配置硬件寄存器、申请内存资源等。 3. 中断处理:中断是设备与CPU之间的一种异步通信机制,用于处理设备发生的事件。驱动程序需要注册中断处理函数,并在中断发生时执行相应的操作。在Linux中,可以通过request_irq()函数来申请中断,并通过irq_handler_t类型的函数来处理中断。 4. 内存管理:驱动程序需要管理设备所使用的内存资源,包括申请和释放内存。在Linux中,可以使用kmalloc()和kfree()函数来进行动态内存分配和释放。 5. 驱动的加载与卸载:驱动程序需要被加载到内核中才能生效。可以通过编译成内核模块的方式加载驱动,也可以将驱动编译进内核。加载驱动可以使用insmod命令,卸载驱动可以使用rmmod命令。 此外,驱动开发者还需要了解Linux内核的架构和相关的API接口,熟悉C语言和汇编语言编程,以及调试和排查驱动问题的技巧。 希望以上内容对你有所帮助!如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值