Linux Driver
文章平均质量分 81
myspor
专注于嵌入式Linux系统的软件开发与应用。熟悉Android系统。
展开
-
Linux 2.6.25 内核编译配置选项简介
1.Code maturity level options代码成熟度选项 1.1General setup 常规设置 1.1.1 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 1.1.2 Local version - append to kernel release 在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到转载 2011-03-26 15:24:00 · 1634 阅读 · 0 评论 -
Linux内核升级LCD驱动的更换(开发板)
Linux内核升级LCD驱动的更换(开发板) 关键字 内核升级 ,更换驱动 ,LCD 概 述 本文给出了将一个已有的LCD驱动添加进一个新的linux内核中的方法 一. 概述 本文搜集整理了Linux系统编译时的主要配置选项(make config)的详细说明,供Linux裁剪特别是设备驱动和模块功能增删时使用参考。需要注意的是,每个版本linux版本的config各选项意义,命名等都可能有所差异。 1、 修改内核根目录config文件 文本方式打开config文件转载 2011-04-11 20:45:00 · 9092 阅读 · 1 评论 -
高手进阶 Linux系统下MTD/CFI驱动介绍
<br /> 高手进阶 Linux系统下MTD/CFI驱动介绍<br />某些Intel的FLASH芯片(如StrataFlash系列)支持多分区,也就是各个分区可以同时进行操作。应该说这是不错的特性,但是也会带来些问题。记得当初移植Linux-2.4.21,挂JFFS2文件系统的时候,经常会报一些"Magic bitmask not found"之类的错误,跟进去发现FLASH读出来的都是些0x80之类的数据,查看资料发现该款FLASH有分区的特性,而Linux的FLASH驱动只用一个状态变量表示整个FL转载 2011-04-09 09:44:00 · 788 阅读 · 0 评论 -
framebuffer驱动全篇
<br />framebuffer驱动全篇<br /> <br />在后续的几篇里面会详细介绍如何编写一个显卡的驱动程序。<br />framebuffer device在内核里面作为显卡驱动模型,许多函数和数据结构都是特定,正是这些特定的东西为我们的编程提供了方便。<br />要开发frame buffer device驱动,你应该阅读Source/Source/Documentation/fb下面的说明文件,三个重要文件00-INDEX,framebuffer.txt,internals.txt,其转载 2011-04-09 09:33:00 · 1003 阅读 · 0 评论 -
Linux设备模型(底层原理简介)
Linux设备模型(底层原理简介) 以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式Linux的底层程序员来说,这部分内容是很重要的。以我学习的ARM9为例,有很多总线(如SPI、IIC、IIS等等)在Linux下已经被编写成了子系统,无需自己写驱动;而这些总线又不像PCI、USB等在《LDD3》上有教程,有时还要自己研究它的子系统构架,甚至要自己添加一个新的总线类型。 对于这方面的学习,我推荐几个网页,这些也是我这部分转载 2011-04-08 10:52:00 · 628 阅读 · 0 评论 -
Linux-2.6.20的LCD驱动分析
Linux-2.6.20的LCD驱动分析 一、让LCD显示可爱的小企鹅 1. 添加s3c2410处理器的LCD控制寄存器的初始值,具体做法为在文件arch/arm/mach-s3c2410/mach-smdk2410.c中添加struct s3c2410fb_mach_info类型的寄存器描述讯息,如下所示: static struct s3c2410fb_mach_info smdk2410_lcd_platdata = { .fixed_syncs=0, .type = S3C转载 2011-04-08 10:51:00 · 515 阅读 · 0 评论 -
Linux Platform Device and Driver
Linux Platform Device and Driver 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。 Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册)相比,一个十分明显的优势在于platfo转载 2011-04-08 10:35:00 · 389 阅读 · 0 评论 -
platform _device和platform_driver注册过程
platform _device和platform_driver注册过程 platform_device_register()注册过程 /* arch/arm/mach-s3c2410/mach-smdk2410.c */ struct platform_device s3c_device_i2c = { .name = "s3c2410-i2c", .id = -1, .num_resources = ARRAY_SIZE(s3c_i2c_resource), .resource = s3c转载 2011-04-08 10:23:00 · 531 阅读 · 0 评论 -
linux设备模型深探
linux设备模型深探 一:前言 Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但是。理解这部份内容,对于我们理解linux设备驱动的结构是大有裨益的。我们不但可以在编写程序程序的时候知其然,亦知其所以然。又可以学习到一种极其精致的架构设计方法。由于之前已经详细分析了sysfs文件系统。所以本节的讨论主要集中在设备模型的底层实现上。上层的接口,如pci.,usb ,网络设备都可以看成是底层的封装。 二:kobject ,kset和ktype Kobjec转载 2011-04-08 11:01:00 · 505 阅读 · 0 评论 -
linux spi子系统驱动分析
linux spi子系统驱动分析 2.6.18内核下已经添加了完整的spi子系统了,参考mtd的分析,将从下到上层,再从上到下层的对其进行分析。 以下先从下到上的进行分析: driver/spi下有两个底层相关的spi驱动程序: spi_s3c24xx.c和spi_s3c24xx_gpio.c 其中spi_s3c24xx.c是基于s3c24xx下相应的spi接口的驱动程序,spi_s3c24xx_gpio.c允许用户指定3个gpio口,分别充当spi_clk、spi_mosi和spi_miso接口转载 2011-04-08 10:41:00 · 593 阅读 · 0 评论 -
Linux tasklet 分析笔记
Linux tasklet 分析笔记 Chapter 1: 驱动程序在初始化时,通过函数task_init建立一个tasklet,然后调用函数tasklet_schedule将这个tasklet放在 tasklet_vec链表的头部,并唤醒后台线程ksoftirqd。当后台线程ksoftirqd运行调用__do_softirq时,会执行在中断向量表softirq_vec里中断号TASKLET_SOFTIRQ对应的tasklet_action函数,然后tasklet_action遍历 taskle转载 2011-04-08 10:36:00 · 614 阅读 · 0 评论 -
Linux USB设备驱动框架分析
Linux USB设备驱动框架分析 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。由于Linux的内核用c来编写,所以我们也按照这种结构化的思想来分析代码,但我还是希望从OO的角度来阐述这些细节。这个结构体的名字有驱动开发人员决定,比如说,鼠标可能有一个叫做mouse_dev的struct,键盘可能由一个keyboard_dev的stru转载 2011-04-08 10:33:00 · 579 阅读 · 0 评论 -
struct resource 解析
/usr/src/linux-2.6.21.5/include/linux/ioport.h struct resource { resource_size_t start; resource_size_t end; const char *name; unsigned long flags; struct resource *parent, *sibling, *child; }; struct resou转载 2011-04-08 10:16:00 · 3784 阅读 · 0 评论 -
Linux lcd 帧缓冲驱动详解
<br />Linux lcd 帧缓冲驱动详解<br />(1)Linux的帧缓冲设备(Framebuffer)简介<br />帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。<br />帧缓冲驱动的应用广泛,在linux的桌面系统中,Xwindow服务器就是利用帧缓冲进行窗口的转载 2011-04-08 11:11:00 · 1423 阅读 · 0 评论 -
Linux I2C核心、总线与设备驱动
第十五章 Linux I2C核心、总线与设备驱动 本章导读 I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。 Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强的I2C框架。 本章第1节将对Linux转载 2011-04-08 11:08:00 · 657 阅读 · 0 评论 -
Select函数实现原理分析
Select函数实现原理分析 select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用户层)所需的BLOCK或NONBLOCK操作。当应用程序通过转载 2011-04-08 10:37:00 · 480 阅读 · 0 评论 -
Linux I2C 驱动分析
转:Linux I2C 驱动分析 最近在看Linux 2.6.21内核的I2C驱动,也在网上查了一下资料,有错也有对,有些心得,记录下来吧。里面认识或许多有不当之处,还恳请指正。 1. I2C 协议 1.1 I2C总线工作原理 I2C总线是由数据线SDA和时钟SCL构成的串行总线,各种被控制器件均并联在这条总线上,每个器件都有一个唯一的地址识别,可以作为总线上的一个发送器件或接收器件(具体由器件的功能决定) 1.2 I2C总线的几种信号状态 1. 空闲状态:SDA转载 2011-04-08 10:24:00 · 451 阅读 · 0 评论 -
linux下I2C驱动
linux下I2C驱动(-) by good02xaut 最近的一段时间,总结一下linux下开发I2C设备驱动的要点。内容随想,没有多加整理。 I2C协议规定了主机和从机的概念,在驱动中采用的多是适配器(主机)和设备(从机)。 首先,i2c规定 Bus -> Algorithm 算法 Adapter 适配器 Device -> Driver Client 从机设备 1。适配器是不是设备?转载 2011-04-08 10:42:00 · 2697 阅读 · 0 评论 -
RK28-Linux I2C使用说明
RK28-Linux I2C使用说明 目 录 一、 版本号和版本说明... 2 二、 模块功能描述... 2 三、 模块软件设计思路... 2 四、 模块主体流程... 2 五、 系统资源占用情况... 2 六、 目录和文件说明... 2 七、 接口函数说明和注意事项... 2 八、 遗留问题... 2 一、 版本号和版本说明 本文给出了linux下I2C驱动的调用使用方法 二、 模块功能描述 I2C总线的驱动在linux上分多层,程序和数据结构较为复杂,这里不作介绍,只介绍在转载 2011-04-11 20:34:00 · 7973 阅读 · 0 评论