Linux驱动

news/2024/11/16 7:35:49/


按照常规分类方法,linux驱动可以分为字符设备,块设备,和网络设备。

  字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常支持openclosereadwrite系统调用。例:串口,LED,按键。

  块设备:在Unix系统中,块设备定义为:以块(通常是512字节)为最小传输单位的设备,块设备不能按字节处理数据。而Linux则允许块设备传送任意数目的字节。因此,块货和字符设备的区别仅仅是驱动的与内核的接口不同。常见的块设备包括硬盘,flash,SD

网络接口可以是一个硬件设备,如网卡;但也可以是一个纯粹的软件设备,比如回环接口(lo)。一个网络接口负责发送和接收数据报文。

按照总线分类法,可分为USB设备,PCI设备,平台总线设备

驱动程序控制设备,主要是通过访问设备内的寄存器来达到控制目的,因此我们讨论如何访问硬件,就成了如何访问这些寄存器了。

设备使用

 

字符设备,对应用程序而言,字符设备就体现成一个文件。比如串口,在/dev目录下有一个文件。当我们需要通过串口发送数据的时候,实际上,我们就将数据写到文件里面去。当我们通过串口接收数据的时候,就直接读取文件。

块设备,通过文件系统这个载体,就可以访问设备。

网络接口设备,socket

 

如何使用字符设备驱动驱动程序

1、编译、安装驱动

linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此,编译/安装一个驱动程序,其实质就是编译一个内核模块。

安装:使用insmod命令安装

2、字符设备文件

应用程序通过文件名找到字符设备文件,我们向字符设备文件里写入或读出数据,实际上就是在操作设备了。字符设备文件是应用程序和设备驱动程序之间的媒介。字符设备文件和设备驱动程序之间通过设备号建立联系。字符设备文件会对应一个设备号,设备驱动程序也会对应一个设备号。若设备号相同,则它们产生一一对应的关系。

创建字符设备文件的方法一般有两种:

1、 使用函数在驱动程序中创建

2、 使用mknod命令

mknod  /dev/文件名 c 主设备号 次设备号

文件名:自定义,但不要和已有的重复

c 表示字符设备文件

主设备号:使用 cat  /proc/devices  可查看设备驱动主设备号

次设备号: 0-255之间的数字。


http://www.ppmy.cn/news/734960.html

相关文章

驱动开发——HelloWDM驱动

友链 hellowdm.h // 保证头文件只被编译一次 // 因为在实际项目中&#xff0c;一个头文件可能会被另一个头文件包含 // 比如b.h中包含了a.h // 然后在c.c中有如下代码&#xff1a; /* #include<a.h> #include<b.h> */ // 这样一来&#xff0c;a.h就被包含了两次 …

windows内核驱动开发

友链 hellodriver 使用VS2019 项目地址 代码 // I dont like NTSTATUS, it like shit typedef NTSTATUS _nt;/* your driver must implement two basic event callback fucnions at least which is:- DRIVER_INITIALIZE DriverEntry- EVT_WDF_DRIVER_DEVICE_ADD KmdfHello…

数据标注:数字病理学中的人工智能

在数字病理学中&#xff0c;组织样本的显微图像被传输到计算机&#xff0c;并使用先进的图像处理技术和计算机视觉对其进行分析。 医学图像和诊断的数字化为病理学中的人工智能开辟了途径。病理学家可以使用机器学习模型来进行增强分析并提高结果准确性。此外&#xff0c;病理学…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习二)

嵌入式操作系统FreeRTOS FreeRTOS是一个专门为轻量级嵌入式应用设计的迷你操作系统&#xff0c;它的主要功能由IPC、时钟管理、内存管理、任务通知以及任务调度等部分构成。 FreeRTOS的代码可以分解为三个主要区块&#xff1a;任务调度、通讯、硬件库。 任务调度&#xff1a;F…

蒲公英枸杞菊花可以一起泡茶喝吗?

这两年花草茶、花果茶甚是流行和风靡&#xff0c;加上人们对健康养生越来越重视&#xff0c;像蒲公英、菊花和枸杞这样组合在一起&#xff0c;人们也不陌生&#xff0c;三者不但都是传统的中药&#xff0c;更是一种食材&#xff0c;不管是泡水、煎汤、煮粥&#xff0c;都能起到…

常使用电脑的人可使用的护眼软件

我不是从事IT行业&#xff0c;是做计算模拟相关的。 因为公司网络限制先前使用电脑管家的健康小助手的一些小功能&#xff0c;但有天不能使用了&#xff0c;卸载不能自己安装。 试着找了找其他可代替的软件&#xff0c;发现了更多有用的。 定时休息 win7可以设置每隔1小时让电…

ubuntu各种实践笔记

一、精选命令 CtrlAltT&#xff1a;运行终端 CTRL Shift T&#xff1a;新建标签页。 CtrlShiftC/V&#xff1a;在终端上复制/粘贴 CtrlL&#xff1a;显示当前文件夹的地址栏&#xff0c;按ESC恢复 Tab&#xff1a;终端上自动补全命令名或文件名 CtrlH&#xff1a;单次显示当…

简化电脑操作,不让多余操作浪费你的生命

一、桌面管理 1、简单美化 以高效为宗旨&#xff0c;我向来是反对使用桌面美化软件的&#xff0c;类似于动态壁纸&#xff0c;活动小窗口&#xff0c;花哨的Dock栏&#xff0c;这些分散注意力的软件一概不用&#xff0c;我们需要高效&#xff0c;就不应该把注意力放在桌面上。…