- 博客(5)
- 收藏
- 关注
原创 Linux驱动开发学习(4)字符设备驱动
上一节中,我们说过,设备以设备文件的形式暴露给用户空间,其中主要包括字符设备和块设备两种。字符设备以数据流的方式进行读写,而块设备以数据块的形式读写。块设备一般用于存储设备和显示设备,常常依赖于现有协议,很少需要自己写驱动,所以我们首先学习字符设备驱动。字符设备应用广泛,对于无需大块数据读写的设备,都是字符设备。
2025-10-08 11:34:44
246
原创 Linux驱动开发学习(3)Linux设备与驱动架构
本文介绍了Linux系统中的设备文件类型和驱动框架结构。主要内容包括:1) Linux中通过ls -al命令可查看不同类型的设备文件标识,重点区分了字符设备和块设备的读写方式差异;2) 阐述了设备、驱动与总线的关系,总线控制器作为中介连接CPU和设备;3) 详细分析了Linux内核中的设备结构体(device)、设备驱动结构体(device_driver)和总线结构体(bus_type)的组成与功能;4) 说明了Linux驱动框架提供的用户空间接口、设备自动发现匹配机制以及控制流、数据流和电源管理功能。文章
2025-10-05 20:24:29
1807
原创 Linux驱动开发学习(2)Linux文件系统
Linux文件系统采用"万物皆文件"的设计理念,通过虚拟文件系统(VFS)将硬件设备抽象为文件,提供标准化的操作接口。用户程序通过系统调用(如open/read/write)或C库函数操作文件,VFS通过file_operations结构体与底层驱动交互。驱动开发需实现关键操作:open、release、read、write和ioctl。设备文件通过inode结构体管理,包含文件基本信息和设备结构体指针。这种抽象机制简化了用户程序对硬件的操作,实现了统一访问接口。
2025-10-01 23:09:42
1686
原创 Linux驱动开发学习(1)驱动程序与内核模块基本概念
驱动程序是直接操作硬件的程序,其将硬件的底层操作封装和抽象,向其他程序提供更方便操作的接口。比如,使用GPIO控制LED的亮灭,需要对相应的寄存器进行读写,而驱动程序可以将对寄存器的操作抽象为“点亮LED”和“熄灭LED”两个接口,其他程序可以直接使用这两个接口来操作LED,而不需要了解如何去操作寄存器。
2025-09-29 22:18:59
918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅