linux-driver
文章平均质量分 73
xp_super
这个作者很懒,什么都没留下…
展开
-
Linux终端设备驱动
第十四章 Linux终端设备驱动本章导读在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。14.1节阐述了终端设备的概念及分类,14.2节给出了Linux终端设备驱动的框架结构,重点描述tty_driver结构体及其成员。14.3~14.5节在14.2节的基础上,分别给出了Linux终端设备驱动模块加载/卸转载 2012-09-27 22:38:58 · 1349 阅读 · 0 评论 -
Linux Platform Device and Driver
以下内容转自:http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.htmlhttp://blog.chinaunix.net/space.php?uid=20648784&do=blog&id=1592839platform是一个虚拟总线,相比PCI,USB,它主要用于描述SOC上的资源。platform所描转载 2012-11-23 10:56:21 · 526 阅读 · 0 评论 -
内核定时器
在linux设备驱动编程中,可以利用linux内核中提供的一组函数和数据结构来完成定时触发工作或者完成某周期性的事物。struct time_list{ struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsigned long data; struct tim原创 2012-12-07 10:55:56 · 575 阅读 · 0 评论 -
platform_bus,platform_driver,platform_bus
一、platform_bus总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。Platform总线是2.6 kernel中最近引入的一种虚拟总线,主要用来管理CPU的片上资源,具有更好的移植性,因此在2.6 kernel中,很多驱动都用platform改写了。/linux/device.h原创 2012-12-11 16:27:35 · 743 阅读 · 0 评论 -
s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()
s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)s3c2410 芯片有这么一段话: FCLK is used by ARM920T ,内核时钟,主频。 HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt contro转载 2012-12-11 19:06:17 · 673 阅读 · 0 评论 -
bio与块设备驱动
bio与块设备驱动 系统中能够随机访问固定大小数据片(chunk)的设备被称作块设备,这些数据片就称作块。块设备文件都是以安装文件系统的方式使用,此也是块设备通常的访问方式。块设备的访问方式是随机的,也就是可以在访问设备时,随意的从一个位置跳转到另一个位置。块设备的访问位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要转载 2012-12-12 15:17:38 · 526 阅读 · 0 评论 -
临界区的并发控制
一、并发与竞态 并发指多个执行单元同时、并行被执行,而并发的执行单元对共享资源(全局变量,静态变量)的访问则容易导致竞态。 几种情景:1、对称多处理器(SMP)的多个CPU 2、单个CPU进程与抢占它的进程 3、中断与进程之间 访问共享资源区的代码区域称为临界区(critical sections).对临界区的保护方法:中断屏蔽,原子操作,自旋锁和转载 2012-12-12 09:46:50 · 978 阅读 · 0 评论 -
看块设备驱动部分的笔记
转自:http://bbs.chinaunix.net/thread-2050601-1-1.html对于块设备,首先明确几个基本的概念:扇区(Sectors): 通常是512 bytes. 是硬件设备传输数据的基本单位.块(Blocks): 通常是1, 2, 4, 8, .... 个扇区,并且小于一个page. 是内核(VFS和文件系统)传送数据的基转载 2012-12-12 10:17:26 · 373 阅读 · 0 评论 -
android 耳机监测驱动
转自:http://embed.chinaitlab.com/J2ME/877029.html 最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家。 我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.java以及HookSwitchObserver.java, 它们会直接读取/转载 2012-12-13 20:28:12 · 721 阅读 · 0 评论 -
ALSA SOC架构
从下到上,依次是ALSA driver、ALSA lib、ALSA application:ALSA application包括aplay、arecord,他们属于ALSA utils的工具。这些工具用于测试驱动非常的好。ALSA lib提供诸如打开,关闭,播放的函数库。ALSA driver是后来才加入了对SOC的支持,并且将hardware audio codec的控制转载 2013-01-05 11:26:50 · 680 阅读 · 0 评论 -
writing an alsa driver 中文
writing-an-alsa-driver(编写一个ALSA驱动)翻译稿 第一章编写一个ALSA驱动(by Takashi Iwai)0.3.6版本翻译:creator sz111@126.com翻译这篇文章主要是为了学习ALSA驱动,因为感觉ALSA是Linux音频发展方向,所以下决心仔细看看,但是中文资料太少,就想翻译一份奉献给广大初学并且英文不好的朋友。不过自己的英转载 2013-01-08 15:56:06 · 930 阅读 · 0 评论 -
linux中直接 I/O 机制的介绍
转自 http://www.ibm.com/developerworks/cn/linux/l-cn-directio/在介绍直接 I/O 之前,这一小节先介绍一下为什么会出现直接 I/O 这种机制,即传统的 I/O 操作存在哪些缺点。缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O转载 2012-12-04 21:06:06 · 632 阅读 · 0 评论 -
Class create, device create, device create file
开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点(包括ldd3中不少例子也是这样),实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_creat转载 2012-11-12 11:22:07 · 575 阅读 · 0 评论 -
嵌入式或linux测试
一、ANSI C/C++方面的知识 一.1、简答题。下面的题目必须全部答对才给分(20分): 1、 如何在C中初始化一个字符数组。 2、 如何在C中为一个数组分配空间。 3、 如何初始化一个指针数组。 4、 如何定义一个有10个元素的整数型指针数组。 5、 s[10]的另外一种表达方式是什么。 6、 GCC3.2.2版本中支持哪几种编程语言。 7、 要使用CHAR_转载 2012-11-05 15:10:57 · 650 阅读 · 0 评论 -
s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()
s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)s3c2410 芯片有这么一段话: FCLK is used by ARM920T ,内核时钟,主频。 HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt contro转载 2012-10-09 11:22:14 · 521 阅读 · 0 评论 -
Linux设备模型之tty驱动架构分析
一:前言TTY这个名称源于电传打字节的简称,在Linux系统表示各种终端。终端通常都跟硬件相对应。比如对应于输入设备的键盘鼠标,或输出设备的显示器和串口终端,也有对应于不存在设备的pty驱动。在如此众多的终端模型之中,Linux系统是怎么将它们统一建模的呢? 这就是我们今天要讨论的问题。二:tty驱动概貌Tty架构如下所示:如上图所示,用户空间主要是通过设备文件同tty_cor转载 2012-09-23 22:42:43 · 696 阅读 · 0 评论 -
Linux终端输入输出(termios)函数
termios系列函数-tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed等,用以获取/设置终端设备的属性/控制/速度。1. 函数声明函数声明#include转载 2012-09-22 21:33:57 · 3840 阅读 · 0 评论 -
tty驱动快速参考
#include 头文件, 包含 struct tty_driver 的定义和声明一些在这个结构中的不同的标志.#include 头文件, 包含 tty_struct 结构的定义和几个不同的宏定义来易于存取 struct termios 的成员的单个值. 它还含有 tty 驱动核心的函数声明.#include 头文件, 包含几个 tty flip 缓冲内联函数, 使得易于操作转载 2012-09-23 22:15:18 · 375 阅读 · 0 评论 -
Linux设备模型组件---类设备
一、定义:一个设备类struct class的真正目的是作为一个该类具体实例(设备)的容器使用;一个设备类的具体实例由struct class_device结构来描述;也可以这样理解:struct class类型相当于面向对象系统中的类的概念,而struct class_device类型相当于面向对象系统中的实例对象的概念;只有在应用具体实例对象的时候,它的类才有意义;类设备struct cl转载 2012-10-16 15:25:26 · 388 阅读 · 0 评论 -
S5PV210平台 相关库文件查询 (逐渐补充)
1.外扩端口虚拟地址映射:/* linux/arch/arm/plat-s5p/include/plat/map-s5p.h * * Copyright (c) 2010 Samsung Electronics Co., Ltd. * http://www.samsung.com/ * * S5P - Memory map definitions * * This原创 2012-10-15 21:48:49 · 1116 阅读 · 0 评论 -
Linux设备驱动程序学习(11)-中断处理
可以让设备在产生某个事件时通知处理器的方法就是中断。一个“中断”仅是一个信号,当硬件需要获得处理器对它的关注时,就可以发送这个信号。 Linux 处理中断的方式非常类似在用户空间处理信号的方式。 大多数情况下,一个驱动只需要为它的设备的中断注册一个处理例程,并当中断到来时进行正确的处理。本质上来讲,中断处理例程和其他的代码并行运行。因此,它们不可避免地引起并发问题,并竞争数据结构和硬件。 透彻地理转载 2012-10-18 16:10:11 · 718 阅读 · 0 评论 -
在一个驱动程序中调用另外一个驱动程序中的函数
问题描述:驱动module2.ko中调用module1.ko中的func1()函数实现 解决方法:在module1.ko驱动中加EXPORT_SYMBOL(func1) ; 在编译module2.ko驱动中makefile文件中编译选项加-DEXPORT_SYMTAB; 要记得先insmod module1.ko,再insmod module2.ko。原创 2012-10-18 22:12:26 · 2706 阅读 · 0 评论 -
内核文件中sys.txt
Current Interfaces~~~~~~~~~~~~~~~~~~The following interface layers currently exist in sysfs:- devices (include/linux/device.h)----------------------------------Structure:struct dev转载 2012-11-01 15:34:00 · 530 阅读 · 0 评论 -
LINUX中s3c2440总线频率、时钟的设置
很多硬件的正常运行需要有总线时钟的支持,比如LCD、I2C等设备。本文分析一下s3c2440的总线时钟,以及在linux中对s3c2440总线时钟频率的相关操作。首先分析硬件s3c2440的总线时钟。1. s3c2440的FCLK HCLK PCLK:时钟源首先来自外部晶振12MHz。对于必须运行在200MHz以上的ARM920t内核来说,这个频率实在太低了,不能直接使用,所以首先转载 2012-10-19 21:30:34 · 1969 阅读 · 0 评论 -
platform_device与platform_driver
做Linux方面也有三个多月了,对代码中的有些结构一直不是很明白,比如platform_device与platform_driver一直分不清关系。在网上搜了下,做个总结。两者的工作顺序是先定义platform_device -> 注册 platform_device->,再定义 platform_driver-> 注册 platform_driver。 (1)platform_devic转载 2012-10-16 22:54:11 · 322 阅读 · 0 评论 -
Linux 内核文件系统与设备操作流程分析
Author: sinisterEmail: sinister@whitecell.orgHomepage:http://www.whitecell.org 本笔记对 linux kernel 的文件系统操作以及设备操作进行了分析,主要是针对 ext3 文件系统的 open 流程的分析,目的是为了解答心中的几个疑问:1、一个文件的操作流程,系统是如何把 struct fil转载 2013-03-01 14:22:41 · 368 阅读 · 0 评论