七.misc类设备与蜂鸣器驱动(下)

本文详细分析了Linux内核中的misc驱动框架,包括设备初始化、注册接口、open函数、在proc下的展现以及内核互斥锁。同时,深入探讨了蜂鸣器驱动的dev_init、ioctl函数,并介绍了如何通过ioctl进行硬件控制。通过对misc_list链表和互斥锁的理解,展示了驱动与应用程序如何交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上:https://blog.youkuaiyun.com/wangweijundeqq/article/details/101698711

目录

三.misc驱动框架源码分析1

3.1、misc源码框架基础

misc设备初始化函数:

注册接口函数:

3.2、misc类设备的注册

四.misc驱动框架源码分析2

4.1、open函数分析

4.2、misc在proc下的展现

4.3、内核互斥锁

五.蜂鸣器驱动源码分析1

5.1、dev_init

5.2、ioctl

六.蜂鸣器驱动源码分析2


三.misc驱动框架源码分析1

  1. 3.1、misc源码框架基础

整体框架分析图:

misc设备初始化函数:

注册接口函数:

(1)misc源码框架本身也是一个模块,内核启动时自动加载

(2)源码框架的主要工作:注册misc类,使用老接口注册字符设备驱动(主设备号10),开放device注册的接口misc_register给驱动工程师

  1. 3.2、misc类设备的注册

(1)驱动工程师需要借助misc来加载自己的驱动时,只需要调用misc_register接口注册自己的设备即可,其余均不用管。驱动工程师将来写程序时, 需要定义出 miscdevice 这个结构体, 然后对其进行填充, 调用 misc_register 对设备进行注册就可以了

(2)misc_list链表的作用。内核定义了一个misc_list链表用来记录所有内核中注册了的杂散类设备。当我们向内核注册一个misc类设备时,内核就会向misc_list链表中insert一个节点。

misc_list 链表在List.h中


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值