驱动开发
xyz-x
学无止境
展开
-
字符设备驱动程序之misc_dev方式注册字符设备
注册字符设备有三种方法:chardev、cdev、misc注册,本文介绍用misc_dev注册方法注册设备,编写简单字符设备驱动程序,实现字符设备驱动程序的基本框架。 编写字符设备驱动的基本步骤为: 1、编写对该设备的各种操作函数(open、write、ioctl) 2、定义一个file_operation结构体,该结构体用来存储驱动内核模块提供的对设备进行各种操作的函数的指针即open()、原创 2017-08-04 18:16:19 · 1308 阅读 · 1 评论 -
Linux内核整体架构
Linux内核的整体架构 1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 注:本文和其它的“Linux内核分析”文章都基于如下约定: a) 内核版本为Linux 3.10.29(该版本是一个long term的版本转载 2017-11-02 19:24:00 · 401 阅读 · 0 评论 -
Linux设备模型(1)_基本概念
Linux设备模型(1)_基本概念 1. 前言 在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了“简洁就是美”的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护。转载 2017-11-07 16:29:24 · 333 阅读 · 0 评论 -
Linux设备模型(2)_Kobject
Linux设备模型(2)_Kobject 1. 前言 Kobject是Linux设备模型的基础,也是设备模型中最难理解的一部分(可参考Documentation/kobject.txt的表述)。因此有必要先把它分析清楚。 2. 基本概念 由“Linux设备模型(1)_基本概念”可知,Linux设备模型的核心是使用Bus、Class、Devi转载 2017-11-14 12:10:05 · 457 阅读 · 0 评论 -
Linux设备模型(3)_Uevent
Linux设备模型(3)_Uevent 1. Uevent的功能 Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。 该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobjec转载 2017-11-16 09:58:33 · 368 阅读 · 0 评论 -
Linux设备模型(4)_sysfs
Linux设备模型(4)_sysfs 1. 前言 sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。 sysfs具备文件系统的所有属性,而本文主要侧重其设备模型的特性,因此不会涉及过多的文件系统实现细节,而只介绍sysfs在Linux设备转载 2017-11-16 10:42:13 · 366 阅读 · 0 评论