![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux驱动
文章平均质量分 80
jansert
这个作者很懒,什么都没留下…
展开
-
Linux 块设备驱动
块设备:IO设备中的一类,应用层对块设备进行读写时,按照扇区大小读写数据。对于IO请求有相应的缓冲区。块设备结构:段(segments):由若干个块组成,是Linux内存管理中一个内存页或内存页的一部分。块(Blocks):由Linux制定对内核或文件系统等数据处理的基本单位,通常由一个或多个扇区组成。扇区(Sectors):块设备的基本单位,一般默认为512字节。Linux块设备驱动结构:1、block_device_operations结构体——块设备操作结构体..原创 2021-01-01 16:29:21 · 455 阅读 · 0 评论 -
Linux IIC驱动
Linux的i2c体系结构分为三个部分:1、i2c核心;2、i2c总线驱动;3、i2c设备驱动。1、i2c核心i2c核心提供了i2c总线驱动和设备驱动的注册、注销方法,i2c通信方法上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。(1)增加/删除 i2c_adapterint i2c_add_adapter(struct i2c_adapter *adap);int i2c_del_adapter(struct i2c_adapter ...原创 2020-12-27 18:37:59 · 408 阅读 · 0 评论 -
Linux PCI驱动
1、体系结构1)PCI桥 -- 只有PCI桥才能生成PCI总线2、PCI设备寻址:每个PCI设备都由一个总线号、一个设备号和一个功能号组成。一个系统最多拥有256条总线,每条总线最多带32个设备,但每个设备可以是最多8个功能的多功能板/proc/iomem描述系统中所有的设备I/O在内存地址空间上的映射,例如,PCI设备:40000000-400003ff:0000:00:1f.1其中:40000000-400003ff:代表设备所映射的内存空间地址0000:00:1f.原创 2020-12-27 18:34:29 · 466 阅读 · 0 评论 -
Linux网络驱动整理
网络设备是完成用户数据包在网络媒介上发送和接收的设备,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议。应用程序使用套接字(socket)完成与网络设备的接口。Linux网络设备驱动的结构Linux 系统对网络设备驱动的驱动体系从上到下划分为4个层次,依次为为网络协议接口层、网络设备接口层、提供实际功能的设备驱动功能层和网络设备与媒介层,4层的...原创 2019-12-29 13:21:32 · 352 阅读 · 0 评论 -
Linux音频驱动整理
典型的数字音频系统电路组成如图所示:通过PCM、 IIS 或 AC97 这些音频接口连接外部的音频编解码器即可实现声音的 AD 和 DA 转换,图中的功放完成模拟信号的放大功能。音频编解码器是数字音频系统的核心,主要指标有:1、采样频率采样频率是每秒钟的采样次数,理论上采样频率越高,转换精度越高,目前主流的采样频率是48KHZ2、量化精度量化精度是指对采样数据分析的精...原创 2019-12-29 21:39:22 · 5280 阅读 · 0 评论 -
Linux 块设备驱动分析
块设备:IO设备中的一类,应用层对块设备进行读写时,按照扇区大小读写数据。对于IO请求有相应的缓冲区。块设备结构:段(segments):由若干个块组成,是Linux内存管理中一个内存页或内存页的一部分。块(Blocks):由Linux制定对内核或文件系统等数据处理的基本单位,通常由一个或多个扇区组成。扇区(Sectors):块设备的基本单位,一般默认为512字节。...原创 2020-01-12 21:35:09 · 685 阅读 · 1 评论 -
Linux字符设备驱动
1、并发与竞态1)并发处理并发的常用技术是加锁或互斥。在Linux内核中,主要通过semaphonre机制和spin_lock机制实现1.1)内核的信号量:是一种睡眠锁//定义信号量struct semaphore sem;//初始化信号量void sema_init(struct semaphore *sem.int val);//用于初始化设置信号量的初值//初始化互斥锁void init_MUTEX(struct semaphore *sem); //把信号量sem原创 2020-12-27 17:03:47 · 180 阅读 · 0 评论