嵌入式Linux中文站

Linux平台总线驱动设备模型

阅读(245)

platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。 总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 Linux2.6系统中定义了一个bus_type的实例platform_bus_type [cpp] view plain cop

Linux字符设备驱动之异步通知

阅读(122)

poll机制可实现有数据的时候就去读,没有数据的时候,如果超过规定一个时间,就表示超时时间。poll机制需要应用程序主动去读,而异步通知并不需要,一旦设备就绪,则主动通知应用程序,应用程序不需要主动查询设备状态,类似于中断的概念,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来 等待信号的到达。 在linux中,异步通知是使用信号来实现的,而在linux,大概有30种信号,比如大家熟悉的ctrl+c的SIGINT信号,进程能够忽略或者捕获除过SIGSTO

linux设备驱动中的阻塞与非阻塞

阅读(178)

首先说说什么是阻塞和非阻塞的概念: 阻塞操作就是指进程在操作设备时,由于不能获取资源或者暂时不能操作设备时,系统就会把进程挂起,被挂起的进程会进入休眠状态并且会从调度器的运行队列移走,放到等待队列中,然后一直休眠,直到该进程满足可操作的条件,再被唤醒,继续执行之前的操作。非阻塞操作的进程在不能进行设备操作时,并不会挂起,要么放弃,要么不停地执行,直到可以进行操作为止。 我们都知道,在应用中,打开一个设备文件时,指定了是以阻塞还是非阻塞打开(缺省是阻塞方式),然后后面的读写一切都是交由驱动来实现,

Linux 网络驱动详解

阅读(158)

原文地址:http://blog.csdn.net/chenjin_zhong/article/details/6324334 1.概述 Linux系统多用于服务器上,Linux非常牢固的支持网络。在Linux,网络分为两个层,分别是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层。网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,而网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。 网络设备驱动程序的主要功能是: (1)模块加载或内核启动相关的初始化处理 (2)清除模块时

Linux下SPI从设备驱动的编写

阅读(171)

转载地址:http://blog.csdn.net/chinazhangzhong123/article/details/51686267 SPI(Serial Peripheral Interface) 是一个同步的四线制串行线,用于连接微控制器和传感器、存储器及外围设备。三条信号线持有时钟信号( SCLK ,经常在 10MHz 左右)和并行数据线带有 主出,从进 (MOSI) 或是 主进,从出 (MISO) 信号。数据交换的时候有四种时钟模式,模式 0 和模式 3 是最经常使用的。每个时钟周期将会传递

linux热插拔之udev的使用方法

阅读(273)

Udev相关的文章很多,本文的主要目的不是提供一个完整的教学文档,对其使用,只是给出网上现有的主要资源。着重分析其基本工作原理以及在使用中遇到的一些README文档没有明确说明的问题。 1 基本概念 udev文件系统是针对2.6内核,提供一个基于用户空间的动态设备节点管理和命名的解决方案,网上关于为什么要使用udev文件系统,udev文件系统和devfs文件系统的比较,等等的文章已经很多了,如果你想了解这方面的内容,请直接搜索相关的关键字。 udev的官方网址:http://www.kernel.org/

Linux IIC设备驱动剖析

阅读(192)

写在前面 由于IIC总线只需要两根线就可以完成读写操作,而且通信协议简单,一条总线上可以挂载多个设备,因此被广泛使用。但是IIC总线有一个缺点,就是传输速率比较低。本文基于Linux-2.6.36版本,说说IIC子系统在Linux中的实现。 IIC子系统框架分为3各部分: 1. I2C核心: I2C总线和I2C设备驱动的中间枢纽,它为 I2C总线和设备驱动 提供了注册、注销等方法。 2. I2C总线驱动(I2C控制器驱动): 对I2C硬件体系中适配器端的实现,控制器可以在CPU内部,也可以集成在CPU内部

Linux总线设备驱动框架的理解

阅读(187)

Linux的设备驱动模型,或者说,Linux的设备驱动框架,都是同一个意思。 应该这样理解,( Linux的设备)驱动框架,即某类设备对应的驱动的框架。 这里是Linux总线设备驱动框架,应该这样理解,(Linux的总线设备) 驱动框架,即总线式设备对应的驱动的框架 。(个人理解) 以下内容源于微信公众号:嵌入式企鹅圈。有格式内容上的修改,如有侵权,请告知删除。 1、总线 总线代表着同类设备需要共同遵守的工作时序,不同的总线对于物理电平的要求是不一样的,对于每个比特的电平维持宽度也是不一样,而总线上传递的