嵌入式Linux中文站

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

阅读(592)

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

Linux驱动加载顺序

阅读(144)

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)

阅读(248)

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驱动架构全面分析

阅读(290)

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

linux下I2C驱动架构全面分析

阅读(151)

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

主设备号--驱动模块与设备节点联系的纽带

阅读(196)

111 一、如何对设备操作 linux中对设备进行操作是通过文件的方式进行的,包括open、read、write。 对于设备文件,一般称其为设备节点, 节点有一个属性是设备号(主设备号、次设备号),其中主设备号将设备文件与驱动模块对应起来 当我们open一个设备节点时,告诉了kern

驱动模块静态编译到 Linux 内核

阅读(197)

一、准备好可以正常引导开发板的源码 二、在内核源码kernel文件夹的driver目录下,创建led_arm文件夹 mkdir drivers/led_arm 三、将LED驱动实验的驱动程序拷贝到led_arm目录下(详情见上一次LED驱动博客) 将led.c拷贝在该文件夹下面 Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动。 每个config菜单项都要有类型定义,bool:布尔类型, trist

Linux设备驱动模型

阅读(256)

尽管 LDD3 中说对多数程序员掌握设备驱动模型不是必要的,但对于嵌入式 Linux 的底层程序员而言,对设备驱动模型的学习非常重要。 Linux 设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说, Linux 设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。 在正式进入设备驱动模型的学习之前,有必要把 documenta