Linux驱动
文章平均质量分 81
红娃子
这个作者很懒,什么都没留下…
展开
-
TQ2440 第一个驱动程序:LED驱动程序
一、安装arm-linux-gcc编译环境 拷贝天嵌光盘linux资源\linux平台开发工具包\EABI-4.3.3_EmbedSky_20100610.tar.bz2到linux虚拟机中的共享目录share(用户安装VMware tools后方可创建共享目录)。#mkdir /opt/EmbedSky#cp /mnt/hgfs/share/EABI-4.3.3_原创 2013-06-22 23:22:06 · 1401 阅读 · 0 评论 -
Linux设备模型之device_add
前言linux设备模型是学习linux驱动的很重要的内容。了解这些原创 2014-10-25 23:24:48 · 9769 阅读 · 0 评论 -
Linux platform总线(1):总体框架
PlatForm设备驱动: 一、platform总线、设备与驱动 1.一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题, 但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。 基于这一背景,Linux发明了一种虚拟的总线,称为platfo转载 2014-07-24 21:09:30 · 1429 阅读 · 0 评论 -
Linux platform总线(2):应用实例
linux驱动模型开发——linux platfoem总线机制讲解与实例开发 转载:http://blog.csdn.net/xdw1985829/article/details/6925994 1、概述: 通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C、IIS、RTC、看门狗等)都被当作平台设备来处理。 从Linux2.6起,引入了一转载 2014-07-24 21:15:46 · 757 阅读 · 0 评论 -
Linux设备驱动方法之mmap
123原创 2013-12-06 16:26:37 · 1686 阅读 · 0 评论 -
Linux输入子系统(1):总体框架
一、input输入子系统总体框架Linux输入子系统将输入驱动抽象为三层:设备驱动层、核心层、事件处理层。 设备驱动层:将底层的硬件输入事件转化为统一事件形式,向输入核心(Input Core)汇报。核心层:承上启下。为驱动提供设备和驱动注册等操作的函数接口。事件处理层:和用户层交互,提供设备的read和write等函数。二、输入子系统的原创 2013-06-22 23:07:33 · 1882 阅读 · 0 评论 -
Linux输入子系统(3):evdev.c
evdev.c是input子系统默认的input_handler之一,它能匹配所有的input_dev,并且自动在文件的系统的/dev目录下新建eventxx设备节点。//evdev.c提供了对event事件原始数据的访问#define EVDEV_MINOR_BASE 64//evdev设备的起始次设备#define EVDEV_MINORS 32//input_handler支原创 2013-06-22 23:15:37 · 4564 阅读 · 0 评论 -
Linux输入子系统(6):设备驱动层之LED驱动
input输入子系统不仅能够处理输入事件,也可以处理输出事件,处理输入事件最终会导致input_handler的event函数被调用,处理输出事件最终会导致input_dev的event的函数被调用。下面以通过输入子系统来控制led为例来说明。注:内核:kernel-2.6.30.4 编译器:arm-linux-gcc 4.3.3 目标板:TQ2440一、设备驱动层程序#inclu原创 2013-06-22 23:17:22 · 1346 阅读 · 0 评论 -
Linux输入子系统(5):设备驱动层实例之触摸屏驱动
一、电阻式触摸屏原理 触摸屏原理: 首先:等待中断(等待按下/松开)。当开关s1断开,s2断开,s3断开,s4闭合,s5闭合时,在触摸屏未按下时Y_ADC为高电平,当触摸屏按下时,Y_ADC通过Y轴连到低电平,触摸屏Y_ADC从高电平到低电平的改变可以作为中断触发信号通知CPU有“Pen Down”事件发生。 其次:读原创 2013-06-22 23:19:17 · 1462 阅读 · 1 评论 -
Linux输入子系统(4):设备驱动层实例之按键驱动
环境:kernel-2.6.30.4,arm-linux-gcc-4.3.3,目标板TQ2440一、设备层驱动程序:#include #include #include #include #include #include #include #include #include #include #inc原创 2013-06-22 23:20:42 · 1387 阅读 · 0 评论 -
Linux输入子系统(2):input.c实现细节
注:内核版本为 kernel-2.6.30.4input_dev input_handler input_handle关系图 一、设备驱动层设备链表建立过程1.获得struct input_dev结构体struct input_dev *input_allocate_device(void)//初始化一个struct input_dev 结构体{原创 2013-06-22 23:13:51 · 2429 阅读 · 0 评论 -
Linux杂项设备驱动
一、Linux杂项设备驱动简介Linux杂项驱动出现的意义在于:有很多简单的外围字符设备,它们功能相对简单,一个设备占用一个主设备号对于内核资源来说太浪费。所以对于这些简单的字符设备它们共用一个主设备号,不同的设备使用不同的次设备号.杂项驱动特点:主设备号相同,次设备号不同在文件系统中自动生成设备节点杂项设备描述结构体struct miscdevice {原创 2013-10-23 21:42:40 · 5802 阅读 · 0 评论 -
Linux字符设备驱动框架
123原创 2013-10-23 10:08:39 · 1285 阅读 · 0 评论 -
Linux fasync机制
linux异步通知类似于中断,程序开始做的就是将想监测的文件设置为异步通知,然后程序就去做别的事情了,当这些文件上面有数据可读时候,就发送一个信号,程序接受到这个信号就去处理这个文件的数据。这样程序不再是主动去读文件了,而是以类型于中断的方式,这样程序更加灵活。要弄清linux异步通知必须要弄明白一下几件事:1.谁发信号2.发给谁3.接受到信号怎么办一、异步通知的使用原创 2013-06-22 23:03:43 · 1271 阅读 · 0 评论 -
Linux 内存屏障
内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水转载 2016-06-20 14:36:11 · 472 阅读 · 0 评论