ITPub博客

首页 > 应用开发 > IT综合 > 字符设备驱动 —— 字符设备驱动框架

字符设备驱动 —— 字符设备驱动框架

原创 IT综合 作者:安信实验室 时间:2021-10-19 17:26:19 0 删除 编辑

1、概述:
linux中一切皆文件,设备也如此,并且以操作文件即文件IO的方式访问设备。
  应用程序只能通过库函数中的系统调用来操作硬件,对于每个系统调用,驱动程序中都会有一个与之对应的函数,对于字符设备驱动,这些函数集中在file_operations结构体中。当应用程序使用系统调用read、write等函数访问设备时,最终会调用到file_opeartions中的成员,当然一开始fops中的只是一大堆函数指针的调用接口,具体的函数就需要我们在驱动中实现,实现对应操作函数后,与fops一对接,应用程序最终就能对硬件进行控制了。
  那么问题来了,当应用程序使用系统调用访问设备时,linux系统怎么知道调用哪一个驱动的fops中的成员呢?
2、设备号、设备节点
设备号和驱动相关联
    设备号是一个ID,设备节点就是驱动文件
    字符设备和块设备是独立的,虽然设备号可能相同,但却是不同的设备



  3、字符设备驱动框架

作为字符设备驱动要素:
1,必须有一个设备号,用在众多到设备驱动中进行区分
2,用户必须知道设备驱动对应到设备节点(设备文件)
linux把所有到设备都看成文件

crw-r----- 1 root root 13, 64 Mar 28 20:14 event0
crw-r----- 1 root root 13, 65 Mar 28 20:14 event1
crw-r----- 1 root root 13, 66 Mar 28 20:14 event2
3,对设备操作其实就是对文件操作,应用空间操作open,read,write的时候
实际在驱动代码有对应到open, read,wri


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946382/viewspace-2838187/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
我们是一家偏软件性测试服务类企业。我们每年跟上千家 企业合作。我们的四大块业务: 1.微软徽标认证 2.谷歌认证 3.眼图测试 4.驱动数字签名服务 我们坚持以客户为中心,快速响应客户需求,持续为客户 创造长期价值进而成就客户。信i0720888

注册时间:2019-08-23

  • 博文量
    47
  • 访问量
    34873