绝对干货~~学习Linux设备驱动开发的过程中自然会遇到字符设备驱动、平台设备驱动、设备驱动模型和sysfs等相关概念和技术。对于初学者来说会非常困惑,甚至对Linux有一定基础的工程师而言,能够较好理解这些相关技术也相当不错。本文横向比较关联各个驱动相关的知识点和纵向剖析Linux整个驱动软件层次,传道授业解惑!!...
分类:
其他好文 时间:
2015-07-25 00:18:40
阅读次数:
251
在之前我们介绍了如何实现一个简单的字符设备驱动,并介绍了简单的open,close,read,write等驱动提供的基本功能。但是一个真正的设备驱动往往提供了比简单读写更高级的功能。这一篇我们就来介绍一些驱动动中使用的一些高级的操作的实现。
大部分驱动除了提供对设备的读写操作外,还需要提供对硬件控制的接口,比如查询一个framebuffer设备能提供多大的分辨率,读取一个RTC设备的时间,设...
分类:
系统相关 时间:
2015-07-24 16:16:22
阅读次数:
196
在之前我们介绍了如何实现一个简单的字符设备驱动,并介绍了简单的open,close,read,write等驱动提供的基本功能。但是一个真正的设备驱动往往提供了比简单读写更高级的功能。这一篇我们就来介绍一些驱动动中使用的一些高级的操作的实现。大部分驱动除了提供对设备的读写操作外,还需要提供对硬件控制的...
分类:
系统相关 时间:
2015-07-24 16:06:37
阅读次数:
148
对与应用层的每个系统调用,驱动程序都有一个与之对应的函数.对于字符设备驱动程序,这些函数集合在一个file_operations类型的数据结构中,该结构体在Linux内核的include/linux/fs.h文件中定义.struct file_operations { struct module ....
分类:
其他好文 时间:
2015-07-23 17:37:13
阅读次数:
129
引:我们知道每一个字符设备在内核中都有一个cdev结构来描述之,而这个结构比较重要的一个成员就是const struct file_operations *ops;该结构的作用是将用户程序中的系统调用和驱动程序中的具体实现函数一一对应起来。当在用户程序中对一个字符设备文件调用某一系统调用时,就知.....
分类:
其他好文 时间:
2015-07-20 22:49:10
阅读次数:
114
一、设备的分类及特点1、字符设备字符设备是面向数据流的设备,没有请求缓冲区,对设备的存取只能按顺序按字节的存取而不能随机访问。Linux下的大多设备都是字符设备。应用程序是通过字符设备节点来访问字符设备的。通常至少需要实现open,close,read,和write等系统调用。设备节..
分类:
系统相关 时间:
2015-07-16 22:38:38
阅读次数:
258
本文是嵌入式企鹅圈开篇--《linux字符设备驱动剖析》的姐妹篇,在上述文章里面我们详细描述了字符设备驱动框架涉及的驱动注册、通过设备文件来访问驱动等知识,并明确通过device_create接口并结合mdev来创建设备文件,但没有展开这个知识点。本文将从代码级去理解Linux设备类和设备文件的创建过程。通过这两篇文章,我们将可以对linux字符设备驱动的机制和脉络有全面的认识。...
分类:
系统相关 时间:
2015-07-06 12:22:10
阅读次数:
257
字符设备不得不说的那些事:一: 设备号:主设备号,次设备号: 数据类型 dev_t(unsigned int) 定义设备号 高12位主设备号 低20位次设备号;二: 设备号的作用: 应用程序通过主设备号找到驱动程序;三:如何分配设备号: ①:静态分配: 1: cat /proc/devi...
分类:
其他好文 时间:
2015-06-28 18:47:39
阅读次数:
185
此篇博客为SylixOSARMBSP编写连载的第三篇,主要介绍bspInit.c文件具体实现。bspInit.c为BSP操作系统初始化部分代码,通常由startup.S初始完基本处理器参数后调用,下面以S3C2440A处理器为例,逐块介绍bspInit.c代码。SylixOSARMBSP第二篇中提到startup.S初始化完成会将会调用b..
分类:
其他好文 时间:
2015-06-19 21:46:46
阅读次数:
241