读取按键的方法: (1)查询的方式:极度耗费资源 (2)中断的方式:如果没有按键按下,read函数会一直的等待 (3)poll机制的引入:可以指定超时时间 上述三种方式有一个共同点:应用程序主动的去查询。 问题:有没有一种方式当有按键按下时,驱动程序通知应用程序去读取。这就是本节所说的异步通知,该方 ...
分类:
其他好文 时间:
2017-06-25 20:22:48
阅读次数:
282
当应用程序调用poll时,会相应的调用内核空间的sys_pollsys_poll do_sys_poll poll_initwait(&table) void poll_initwait(struct poll_wqueues *pwq) init_poll_funcptr(&pwq->pt, __ ...
分类:
其他好文 时间:
2017-06-25 16:54:50
阅读次数:
173
机制or策略: 驱动提供机制(what),而不是提供策略(how); 内核功能划分: 根据内核完成任务的不同,可分为如下几个部分: 1. 进程管理 负责进程的的创建和销毁,并处理它们和外部之间的连接(输入输出)。不同进程之间的通信是整个系统的基本功能,因此由内核处理。 除此之外,控制进程如何共享CP ...
分类:
系统相关 时间:
2017-06-24 22:49:51
阅读次数:
307
ls-普通文件d目录b块文件c字符设备文件l软连接p命令管道文件s套接字文件时间戳字段的意义:(显示的时间代表的是最近一次被修改时间,表示内容被修改了)访问时间:代表文件被读过修改时间:代表文件内容被改变了改变时间:元数据发生该表可以使用stat查看着三个时间ls-d显示目..
分类:
系统相关 时间:
2017-06-22 11:12:03
阅读次数:
217
Linux中的文件类型 Linux用设备文件来标识一个特定的硬件设备。 Linux中有两类设备文件:字符设备文件和块设备文件。 字符设备指的是能够从它那里读取成字符序列的设备,如磁带和串行线路; 块设备指的是用来存储数据并对其各部分内容提供同等访问权的设备。如磁盘。 和字符设备有时又被称为顺序访问设 ...
分类:
系统相关 时间:
2017-06-22 10:04:38
阅读次数:
186
写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动、第二种方法:通过板文件的i2c_board_info填充,然后注册) 注销i2c_driver 具体如下: ● 构建i2c_driver static struct ...
分类:
系统相关 时间:
2017-06-21 09:39:39
阅读次数:
270
#1.驱动的概念##1.1回顾驱动的功能1.融入内核2.被应用能最终使用到3.管理设备##1.2三大类驱动1.字符设备2.块设备3.网络设备#2.字符设备##2.1从应用的角度思考驱动解决的问题在应用看来,各种设备在内核中会被映射成文件,操作设备即操作文件。fd=open("/dev/xxx",flags);read(f..
分类:
其他好文 时间:
2017-06-19 22:09:21
阅读次数:
102
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
一、分支控制语句 1、if .. fi条件 if condition; then action fi 2、if .. else .. fi条件 if condition;then action; else action fi 3、if .. else if ..else ..fi条件 if cond ...
分类:
系统相关 时间:
2017-06-18 18:56:02
阅读次数:
256
在Linux系统中,假设我们想要知道一个文件的详细信息,那么最简便的方法自然就是ls命令了。例如以下图所看到的:当在shell输入命令"ls -l old"时,在下方就会显示出关于文件old的一些 信息.以下就从左到右逐步分析每部分输出所代表的详细含义。当中输出的第一部分包括十个字符。当中第一个字符 ...
分类:
系统相关 时间:
2017-06-18 13:26:22
阅读次数:
159