<一>.主设备号和次设备号 对字符设备的訪问时通过文件系统内的设备名称进行的。那些设备名称简单称之为文件系统树的节点,它们通常位于/dev文件夹。字符设备驱动程序的设备文件可通过ls -l命令输出的第一列中的'c'来识别。块设备相同位于/dev下,由字符'b'标识 crw-rw 1 root roo ...
分类:
系统相关 时间:
2017-07-01 20:05:51
阅读次数:
356
机制or策略: 驱动提供机制(what),而不是提供策略(how); 内核功能划分: 根据内核完成任务的不同,可分为如下几个部分: 1. 进程管理 负责进程的的创建和销毁,并处理它们和外部之间的连接(输入输出)。不同进程之间的通信是整个系统的基本功能,因此由内核处理。 除此之外,控制进程如何共享CP ...
分类:
系统相关 时间:
2017-06-24 22:49:51
阅读次数:
307
一个设备驱动的主要任务有两个: 1. 存取设备的内存 2. 处理设备产生的中断 对于第一个任务。UIO 核心实现了mmap()能够处理物理内存(physical memory),逻辑内存(logical memory), 虚拟内存(virtual memory)。UIO驱动的编写是就不须要再考虑这些 ...
分类:
系统相关 时间:
2017-06-23 11:42:54
阅读次数:
297
1、misc_open函数分析该函数在driver/char/misc.c中,misc.c是驱动框架实现的,这里面的misc_Open函数是misc驱动框架为应用层提供的一个打开misc设备的一个接口。1、首先我们要知道在misc.c中的misc_init函数中,将misc这种类设备注册成了字符设备驱动。代码如下staticint__ini..
分类:
系统相关 时间:
2017-06-18 20:03:34
阅读次数:
340
<一>:设备驱动程序的作用 从一个角度看,设备驱动程序的作用在于提供机制,而不是策略。在编写驱动程序时,程序猿应该特别注意以下这个基本概念:编写訪问硬件的内核代码时,不要给用户强加不论什么特定策略。由于不同的用户有不同的需求,驱动程序应该处理如何使硬件可用的问题。而将如何使用硬件的问题留给上层应用程 ...
分类:
系统相关 时间:
2017-06-18 14:23:05
阅读次数:
351
前段时间在学习linux设备驱动的时候,看了陈学松著的《深入Linux设备驱动程序内核机制》一书。说实话。这是一本非常好的书,作者不但给出了在设备驱动程序开发过程中的所须要的知识点(如对应的函数和数据结构),还深入到linux内核里去分析了这些函数或数据结构的原理。对设备驱动开发的整个过程和原理都分 ...
分类:
系统相关 时间:
2017-06-14 19:24:04
阅读次数:
322
前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。 一、platform 驱动的工作过程 platform模型驱动编程,platform 驱动只是在字符设备驱动外套一层platform_driver 的外 ...
分类:
系统相关 时间:
2017-06-11 18:29:27
阅读次数:
331
转自:http://blog.csdn.net/yikai2009/article/details/8653842 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] Select - 系统调用 int select - 功能 ...
分类:
系统相关 时间:
2017-06-11 16:32:06
阅读次数:
294
转自:http://blog.csdn.net/yikai2009/article/details/8653697 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 阻塞 阻塞操作 非阻塞操作 阻塞方式-read- 实现 阻 ...
分类:
系统相关 时间:
2017-06-11 16:25:52
阅读次数:
440
转自:http://blog.chinaunix.net/uid-24264134-id-98061.html Linux设备驱动会以内核模块的方式出现,因此,内核模块也成了我们编写驱动的入门知识,这是一个最简单的linux内核模块"Hello World",首先来看一下hello.c中的代码: # ...
分类:
其他好文 时间:
2017-06-10 22:33:17
阅读次数:
275