linux 驱动
文章平均质量分 79
小艾的01
这个作者很懒,什么都没留下…
展开
-
pl330 dmac驱动分析1--数据结构
pl330 dmac是基于arm amba的dma控制器,最多有8个操作通道,32个事件处理,并且有多个外设接口,有自己的命令集,详细信息看pl330 datesheet。pl330驱动程序: pl330驱动程序位于看kernel/driver/dma/pl330.c文件,该驱动程序由三星coder写的。 驱动的关键数据结构:原创 2017-02-04 16:32:41 · 4837 阅读 · 1 评论 -
linux根目录下各文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.d转载 2014-09-03 15:37:18 · 691 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——AT24C02(EEPROM I2C接口)驱动解读
本文将介绍Linux中AT24C02驱动。AT24C02是一种EEPROM,使用I2C接口来访问。在开发板中,使用I2C控制器0和AT24C02连接,这里就不给出原理图了,如需要,可以搜索TQ2440开发板的原理图。目标平台:TQ2440 CPU:s3c2440内核版本:2.6.32本文所有的代码均位于内核源码:linux/drivers/misc/ee转载 2014-09-03 10:00:30 · 1284 阅读 · 0 评论 -
Linux驱动中,probe函数何时被调用
最近看到linux的设备驱动模型,关于Kobject、Kset等还不是很清淅。看到了struct device_driver这个结构时,想到一个问题:它的初始化函数到底在哪里调用呢?以前搞PCI驱动时用pci驱动注册函数就可以调用它,搞s3c2410驱动时只要在mach-smdk2410.c中的struct platform_device *smdk2410_devices {}中加入设备也会调用转载 2014-09-03 15:26:21 · 585 阅读 · 0 评论 -
MODULE_DEVICE_TABLE
1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名为__mod_pci_device_table的局部变量,该变量指向第二个参数。内核构建时,depmod程序会在所有模块中搜索符号__mod_pci_device_table,把数据(设备列表)从模块中抽出,添加到映射文件/lib/modules/KERNEL_VERSION/modules.pci转载 2014-09-02 17:09:11 · 599 阅读 · 0 评论 -
手把手教你写Linux I2C设备驱动
Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。 Linux I2C驱动涉及的知识点还是挺多的,主要分为Linux I2C的总线驱动(I2C BUS Driver)和设备驱动(I2转载 2014-09-01 21:36:36 · 823 阅读 · 0 评论 -
使用register_chrdev注册字符设备
1.2.2 使用register_chrdev注册字符设备注册字符设备可以使用register_chrdev函数。int register_chrdev (unsigned int major, const char *name, struct file_operations*fops); register_chrdev函数的major参数如果等于0,则表示采用系统动态分配转载 2014-09-01 16:58:55 · 1154 阅读 · 0 评论 -
嵌入式Linux 建立udev 及有意思的udev FAQ
udev嵌入式上路经历改编自udev轻松上路第一、什么是udev? 这篇文章UDEV Primer给我们娓娓道来,花点时间预习一下是值得的。第二、为什么udev要取代devfs? udev是硬件平台无关的,属于user space的进程,它脱离驱动层的关联而建立在操作系统之上,基于这种设计实现,我们可以随时修改及删除/dev下的设备文件名称和指向,随心所欲地按照我们的愿转载 2014-09-01 17:27:16 · 867 阅读 · 0 评论 -
device_create ()详解
在驱动程序中初始化入口函数中,向内核注册一个设备后,往往要注册一个类例如static int __init mydriver_init(void) //驱动程序的初始化{ …… MYDRIVER_Major = register_chrdev(0, DEVICE_NAME, &mydriver_fops); //向内核注册一个设备,返回值为注册的主设备号转载 2014-09-01 17:10:23 · 977 阅读 · 0 评论 -
udev和sysfs简介
Libudev和sysfs指南 这是一篇译文,原文在:http://blog.csdn.net/fjb2080/article/details/7528894 在unix和类unix系统中,硬件设备可以通过/dev目录下的特殊文件进行访问,这些文件又被称为设备文件或设备节点。通过操作普通文件一样读写这些文件可以利用内核设备驱动程序与硬件设备通信,而这个过程不转载 2014-08-31 20:37:20 · 1273 阅读 · 0 评论 -
Linux┊详解udev
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。转载 2014-08-31 20:32:02 · 623 阅读 · 0 评论 -
linux 2.6下eeprom at24c08 i2c设备驱动(new style probe方式)
1 修改bsp_以便支持probe1.1 AT24C08地址的确定 原理图上将A2、A1、A0都接地了,所以地址是0x50。注意到是7位(bit).1.2 修改bsp采用友善之臂的, 2.6.32.2内核[root@localhost mach-s3c2440]# vim /opt/FriendlyARM/mini2440/lin转载 2014-09-03 17:58:37 · 1330 阅读 · 0 评论 -
linux设备驱动——总线、设备、驱动
2.6 版本内核是如何管理总线,驱动,设备之间的关系的,关于bus_type、device_driver、device这三个内核结构在内核代码中可以找到。由于这三个结构的重要性,我们在这里先将它们贴出来; 1、设备结构的定义: struct device { struct klist klist_children; struct klist转载 2014-09-04 16:40:02 · 498 阅读 · 0 评论 -
S3C2440之LCD
s3c2440具有LCD控制器,可以很方便驱动各种LCD.下面以TFT型LCD为例,讲一讲LCD控制器的用法:LCD控制器方框图:可以看到s3c2440中LCD控制器的外部接口信号有33个,包括24个数据位和9个控制位。那么这些数据位控制位有什么作用呢,首先那看看TFT屏的工作时序:VSYNC为帧同步信号,每发出一个脉冲表示新的一屏图像数转载 2014-09-28 14:33:24 · 976 阅读 · 0 评论 -
基于s3c2440的u-boot-2010.3 LCD驱动流程以及LOGO的显示详解
如果需要在UBOOT的阶段就要显示LOGO,直到内核启动完毕后UI接管FrameBuffer为止。这样可以避免内核启动过程的这段时间大约5-8秒内的黑屏。suoyi原创 2014-12-10 15:10:59 · 1520 阅读 · 0 评论 -
linux2.6.32.2 mini2440平台移植-- UDA1341 音频驱动移植
1.6.1 在初始化文件中加入 UDA1341 设备结构 Linux-2.6.32.2已经完美的支持UDA1341音频芯片的驱动,我们只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注册 UDA1341 平台设备的控制端口就可以了,打开 mach-mini2440.c,添加如下内容://在文件首部添加头文件#include转载 2014-10-11 17:46:47 · 744 阅读 · 0 评论 -
HX8369 驱动调试总结
首先确定自己需要什么样的原创 2014-09-28 14:44:04 · 8114 阅读 · 0 评论 -
TSlib校准原理!
在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。在Qtopia 4.*版本中,默认的Tslib版本为Tslib 1.4。在Qtopia 2.*版本中,默认的Tsli转载 2014-10-10 15:00:39 · 1472 阅读 · 0 评论 -
S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2上接:S3C2440上LCD驱动(FrameBuffer)实例开发详解(一)四、帧缓冲(FrameBuffer)设备驱动实例代码:①、建立驱动文件:my2440_lcd.c,依就是驱动程序的最转载 2014-10-09 11:33:06 · 603 阅读 · 0 评论 -
S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG转载 2014-10-09 11:29:22 · 773 阅读 · 0 评论 -
修改U-boot文件,添加LCD驱动
驱动lcd,并刷屏1)修改include/configs/edukit2410.h文件#define CONFIG_DRIVER_LCD/*suport LCD*/#endif /* __CONFIG_H */2)添加LCD驱动及初始化函数在/board/Embest/edukit2410/目录下建立文件,命名为lcd.c,并将以下代码拷贝到该文件中。转载 2014-09-30 21:07:33 · 2833 阅读 · 0 评论 -
uboot源码分析1-start.s
#include #include /* ************************************************************************* * * Jump vector table as in table 3.1 in [1] * ****************************************转载 2014-09-30 16:39:09 · 1089 阅读 · 0 评论 -
S3C2440 LCD控制器描述
系统结构框图 LCD控制器系统框图: REGBANK有17个可编程寄存器和256×16的调色板存储器,用来设定LCD控制器。LCDCDMA是一个专用DMA,自动从帧存储器传输视频数据到LCD控制器,用这个特殊转载 2014-10-09 17:02:41 · 897 阅读 · 1 评论 -
Linux: Framebuffer测试程序
fb设为24位模式:fbset -fb /dev/fb0 -g 800 600 800 600 24 -n用r g b填充fb:use-fb 255 0 0 //reduse-fb 0 255 0 //green... use-fb.c 代码:/* use-fb.c*/#include #include #转载 2014-10-09 10:16:25 · 2786 阅读 · 0 评论 -
UBOOT LCD驱动流程
很多情况下都需要在UBOOT的阶段就要显示LOGO,直到内核启动完毕后UI接管FrameBuffer为止。这样可以避免内核启动过程的这段时间大约5-8秒内的黑屏。UBOOT中的LCD驱动比较简单。[start_armboot@Board.c] -> [devices_init@device.c] -> [drv_video_init@cfb_console.转载 2014-09-30 15:38:40 · 2145 阅读 · 0 评论 -
【转】跟我一起写udev规则(译)
目录 介绍 关于本文档 更新历史概念 术语: devfs, sysfs, nodes, etc. 为什么? 内置固定命名设计编写规则 规则文件和语义 规则语法 基本规则 sysfs匹配属性 设备级联结构 字符串替换 字符串匹配从sys转载 2014-08-31 20:35:03 · 650 阅读 · 0 评论 -
linux驱动加载命令和驱动模块信息查看
驱动操作命令: insmod / modprobe 加载驱动 rmmod 卸载驱动 lsmod 查看系统中所有已经被加载了的所有的模块以及模块间的依赖关系 modinfo 获得模块的信息转载 2014-08-30 19:46:38 · 3720 阅读 · 0 评论 -
Linux Input子系统--概述
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7714188 输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个Input子系统。Input子系统分为三层,从下至上分别是输入设备驱动层,输转载 2014-09-10 16:01:25 · 781 阅读 · 0 评论 -
input-dev输入子系统
一.input子系统简介: linux系统中,input输入子系统驱动主要可以分为:设备驱动层、input core层和input handler事件处理层。设备驱动层为具体用户设备驱动,输入设备由struct input-dev 结构表示,并由input_register_device和input_unregister_device来注册和卸载;input hander事件转载 2014-09-10 15:00:18 · 758 阅读 · 0 评论 -
基于FT5x06嵌入式Linux电容触摸屏驱动
***************************************************************************************************************************作者:EasyWave转载 2014-08-25 11:50:43 · 1877 阅读 · 0 评论 -
Linux I2C驱动分析与实现(一)
====本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/yyplc====本文基于内核版本linux-2.6.30.4分析.Linux中i2c子系统框图如下:•客户驱动即I2C设备驱动,每个客户驱动可以为一个或多个I2C设备服务,并向用户空间提供相应的访问接口函数。客户驱动需要向总线注册并通过i2c-core转载 2014-08-26 18:17:31 · 677 阅读 · 0 评论 -
Linux I2C驱动分析与实现(二)
====本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/yyplc====通过上篇《Linux I2C驱动分析与实现(二)》,我们对Linux子系统已经不陌生,那么如何实现I2C驱动呢?编写客户驱动的方法在内核中有两种方式的i2c客户驱动的编写方法,一种叫legacy传统方式,另一种是newstyle方式. 前一种legacy是一种转载 2014-08-26 18:17:08 · 606 阅读 · 0 评论 -
Linux下PCI设备驱动程序详解
PCI 是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。 Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。一、PCI总线系统体系结构PCI是外围设备互连(Peripheral Component转载 2014-08-26 16:18:15 · 2460 阅读 · 0 评论 -
Linux的i2c驱动详解
1 简介 I2C 总线仅仅使用 SCL 、 SDA 两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和 PCB 板布线空间的占用。因此, I2C 总线被非常广泛地应用在 EEPROM 、实时钟、小型 LCD 等设备与 CPU 的接口中。Linux I2C GPIO驱动是在没有专用I2C芯片的情况下,用GPIO口来模拟I2C总线时序,完成Linux与I2C设备的通信过程。用两根转载 2014-08-25 18:29:04 · 782 阅读 · 0 评论 -
FT5406触摸屏驱动
1.首先,分析下FT5406的基本电路接口[html] view plaincopyExternal Interface I2C/SPI: an interface for data exchange with host INT: an interrupt signal to inform the host proces转载 2014-08-25 11:54:22 · 1377 阅读 · 0 评论 -
Linux设备驱动之I2C架构分析
一、前言 I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识转载 2014-08-26 09:56:34 · 862 阅读 · 0 评论 -
Linux I2C驱动完全分析(二)
博主按:大热的天,刚刚负重从五道口走到石板房,大约4公里吧。终于让我找了一个咖啡屋休息一下,继续写这篇驱动分析。单身的生活就是这样无聊啊。 不发牢骚了,活出个样儿来给自己看!千难万险脚下踩,啥也难不倒咱!继续整!~ 先说一下,本文中有个疑惑,一直没有搞懂,写在这里,望高人指点一二,不胜感激!#define I2C_M_NOSTART 0x4000 /* if I2C_FU转载 2014-08-25 18:32:27 · 687 阅读 · 0 评论 -
Linux I2C驱动完全分析(一)
版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。 博主按:其实老早就想写这个I2C的了,期间有各种各样的事情给耽误了。借着五一放假的时间把这个写出来,供同志们参考。以后会花一些时间深入研究下内核,虽然以前对内核也有所了解,但是还不系统。I2C的硬件结构并不复杂,一个适配器加几个设备而已。Linux下驱动的体系结构看着挺复杂,实际也是比较简单的。在本文中我还是使转载 2014-08-25 18:31:36 · 776 阅读 · 0 评论 -
Linux Input子系统--设备的注册和打开
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7718158 这节结合even handler来分析设备的注册和打开的过程,在设备注册之前,必须先初始化INPUT子系统,由input_init()函数来完成[cpp] view plaincopy转载 2014-09-10 16:13:21 · 12118 阅读 · 0 评论 -
Linux workqueue工作原理
1. 什么是workqueue Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程. 工作队列(workqueue)是另外一转载 2014-09-10 14:14:03 · 515 阅读 · 0 评论