一、linux系统将设备分为3类:字符设备、块设备、网络设备。
应用程序调用的流程框图:
三种设备的定义分别如下,
字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。
块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘...
分类:
系统相关 时间:
2016-07-03 19:42:38
阅读次数:
307
在前面的一篇文章中,我们分析了一个 uart_driver 的向上注册过程,主要是 tty 的一些东西,知道了 tty 注册了一个字符设备驱动,我们在用户空间 open 时将调用到 uart_port.ops.startup ,在用户空间 write 则调用 uart_port.ops.start_tx ,还知道了如何 read 数据等等。但是,这些都是内核帮我们实现好的,在真正的驱动开发过程中几...
分类:
其他好文 时间:
2016-07-01 21:36:43
阅读次数:
2279
小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动。 InfoNES InfoNES_System_Linux.cpp: ...
分类:
系统相关 时间:
2016-07-01 18:25:35
阅读次数:
526
1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。
字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。
块设备:和字符设...
分类:
系统相关 时间:
2016-06-21 07:06:46
阅读次数:
293
当我们对字符设备进行编程的时候,需要做一些常有的准备工作,获取设备号,对设备文件操作函数的注册,文件信息的初始化,文件的内核表现形式,向内核的注册等等. 对字符设备的访问是通过文件系统内的设备名称进行的,通常在/dev目录下.使用ls -l 每行的第一个字符用来识别该文件类型,c就是字符设备驱动文件 ...
分类:
其他好文 时间:
2016-06-16 21:34:36
阅读次数:
195
驱动程序: 按键驱动的两个重点:去抖、中断 应用程序: #include "s3c_driver.h"#define DRV_DESC "S3C24XX button driver"/* Driver version*/#define DRV_MAJOR_VER 1#define DRV_MINOR ...
分类:
其他好文 时间:
2016-06-12 15:12:30
阅读次数:
184
第6章 Android驱动编程 通过介绍本章设备驱动、字符设备驱动编程、GPIO驱动程序实例和4*4扫描键盘驱动等内容,熟练掌握了Android驱动编程。Android内核内核模块编程中包括设备驱动和内核模块、模块相关命令、Android内核内核模块编程和内核模块实例程序。Android内核中采用可 ...
分类:
移动开发 时间:
2016-06-05 23:19:55
阅读次数:
214
第六章讲的是Android驱动编程,主要介绍了嵌入式Android内核设备驱动程序开发的基础 。首先介绍了设备驱动程序的基础知识,驱动程序与整个 软硬件系统之间的关系,以及Android内核内核模块的基本编程。重点主要是讲解了字符驱动程序的主要函数口,详细的介绍了字符设备驱动程序的编写流程,重要的数 ...
分类:
其他好文 时间:
2016-06-04 19:35:11
阅读次数:
159
前言 主要是在嵌入式Linux(树莓派)中如何使用已有的函数库编写应用程序操纵GPIO,如何编写字符设备驱动程序在内核程序中使用GPIO 硬件连接图 虚拟文件系统操作GPIO Linux可以通过访问sys/class/gpio下的一些文件,通过对这些文件的读写来实现对于GPIO的访问。 树莓派下面的 ...
分类:
其他好文 时间:
2016-06-04 07:03:28
阅读次数:
529
裸机下控制LED灯非常方便,只需要配置好GPIO引脚功能,然后向GPIO引脚映射的内存地址处写入数据即可,但linux下驱动就不那么简单了,需要结合字符设备驱动的架构,然后将功能实现添加进去,笔者参考linux设备驱动程序(第三版)中介绍的新的接口来实现驱动。友善之臂官网提供的源码是基于miscde ...
分类:
其他好文 时间:
2016-06-02 00:50:50
阅读次数:
162