嵌入式Linux中文站

linux RTC 驱动模型分析

阅读(169)

RTC(real time clock)实时时钟,主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把RTC用作离线的时间与日期维护器。当Linux内核启动时,它从RTC中读取时间与日期,作为基准值。在运行期间内核完全抛开RTC,以软件的形式维护系统的当前时间与日期,并在需要时将时间回写RTC芯片。另外如果RTC提供了IRQ中断并且可以定时,那么RTC还可以作为内核睡眠时唤醒内核的闹钟。应用程序可以用RTC提供的周期中断做一些周期的任务。linux有两种rtc

Linux下spi驱动开发

阅读(163)

作者:刘洪涛, 华清远见嵌入式学院 讲师。 一、概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写一个SPI驱动程序 一、概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了。

Linux下的帧缓冲lcd应用编程及Framebuffer驱动程序模型

阅读(222)

一、Linux的帧缓冲设备 帧缓冲(framebuffer)是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer 设备驱动来完成的。帧缓冲驱动的应用广泛,在 linux 的桌面系统中,Xwindow 服务器就是利用帧缓冲进行窗口的绘制。尤其是通过帧缓冲可显示汉字点阵,成为 Linux汉化的唯一可行方案。 帧缓冲设备对应的设备文

Linux SPI总线设备驱动模型详解

阅读(555)

随着技术不断进步,系统的拓扑结构越来越复杂,对热插拔、跨平台移植性的要求越来越高,早期的内核难以满足这些要求,从linux2.6内核开始,引入了总线设备驱动模型。其实在linux2.4总线的概念就已经提出来了,直到2.6版本的内核才运用。 Linux系统中有很多条总线,如I2C、USB、platform、PCI等。 以spi为例,假如有M种不同类型CPU,N中不同SPI外设,在写裸机驱动的时候,M种CPU驱动同一个外设需要M份代码,而N种外设使用同一个cpu又需要N份代码,所以需要M*N份代码,这是典型的

Linux V4L2驱动架构解析与开发导引

阅读(816)

众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中被划分为面向字符设备、面向块设备、面向网络接口三大类来进行处理,前两类驱动在文件系统中形成类似文件的虚拟文件,又称为节点node,这些节点拥有不同的名称代表不同的设备,在目录/dev下进行统一管理,系统调用函数如open、close、read等也与普通文件的操作有相似之处,这种接口的一致性是由VFS(虚拟文件系统层)抽象完成的。面向网络接口的设备仍然在UNIX/Lin

Linux驱动加载顺序

阅读(172)

Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏: include\linux\init.h #define pure_initcall(fn) __define_initcall(0,fn,1) #define core_initcall(fn) __define_initcall(1,fn,1) #define core_initcall_sync(fn) __define_initcall(1s,fn,1s) #define postcore_initcall(fn) __defin

linux adc驱动(基于三星通用adc api)

阅读(266)

linux adc驱动(基于三星通用adc api) 硬件平台: 基于讯为开发板itop4412 scp 1G\ 驱动说明: 本驱动基于三星提供的通用api函数来实现的,具体adc寄存器操作有三星公司实 现,我们要做的是调用三星公司提供的api来实现我们自己的功能。下面对相关的结构体和api函数进行解析 [cpp] view plain copy struct s3c_adc_client{ struct platform_device*pdev; struct list_headpend; wait_q

linux下I2C驱动架构全面分析

阅读(179)

I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中。 linux下的驱动思路 在linux系统下编写I2C驱动,目前主要 有两种方法 , 一种是把I2C设备当作一个普通的字符设备来处理 , 另一种是利用linux下I2C驱动体系结构来完成 。下面比较下这两种方法: 第一种