
linux驱动
文章平均质量分 82
yanzheng1113
这个作者很懒,什么都没留下…
展开
-
HDMI之EDID分析
HDMI(HighDefinitionMultimediaInterface),作为新一代数字多媒体接口,能够传输高速率无压缩的数字音频、视频数据,HDMl1.2像素时钟可达165MHz,数据速率达到4.95Gbps,而HDMl1.3像素时钟则高达340MHz,数据速率达到10.2Gbps。目前高清1080p的数据带宽是2.2Gbps,HDMI完全可以用在高清图像传输中。事实上,目前高清图像传输也原创 2012-01-04 11:43:41 · 3825 阅读 · 4 评论 -
Linux/Android启动 之 (module_init和machine-init函数)
Linux/Android启动之Machine-Init函数一. 基础知识1. Linux启动过程中驱动模块初始化的位置Linux OS的启动过程中将会去创建线程kernel_init,该线程负责Driver初始化等一系列工作。线程kernel_init将会依次调用do_basic_setup() -->do_initcalls()-->do_one_ini转载 2012-06-30 09:29:10 · 458 阅读 · 0 评论 -
alsa架构音频分析总节
参考文章:http://blog.youkuaiyun.com/droidphone/ http://blog.chinaunix.net/uid/22917448.html分析只列出部分重要代码,具体请参考linux3.0内核代码。Alsa架构整体来说十分复杂,但对于驱动移植来说我们仅仅只需要关心ASOC就足够了。在学习asoc之前我们先了解一些专业术语:ASoC cu原创 2012-10-18 15:06:19 · 1069 阅读 · 1 评论 -
android系统PS2全键盘驱动(中)-使用input_event实现 .
在android系统PS2全键盘驱动(上)-使用linux的标准接口实现中介绍了使用linux的标准接口实现PS2键盘驱动,由于我的PS2键盘是特殊定制的,有部分按键并不是按照第二套键盘扫描码来的,虽然使用linux提供的PS2驱动可以使用大部分的按键,但有部分按键无法使用。所以要使用linuxPS2键盘驱动的话有两种方式,一种是修改linux PS2驱动对扫描码处理部分的代码,一种是自己写P转载 2012-11-13 11:25:29 · 348 阅读 · 0 评论 -
android系统PS2全键盘驱动(上)-使用linux的标准接口实现 .
android的设备带全键盘的很少,即使带全键盘的也都是USB HID键盘的居多,我们的设备类似于上网本,需要一个全键盘,但是设备上只有两个USB host口,Wifi用掉一个,剩下的一个USB host被用来做鼠标或者U盘接口用。刚好所用的ARM芯片带的有PS2控制器,所以我们采用PS键盘。linux本身支持PS2协议,如果PS2键盘使用的是标准的第二套键盘扫描码101 102 和104 键转载 2012-11-13 11:23:52 · 575 阅读 · 0 评论 -
FS_S5PC100平台上Linux Camera驱动开发详解(二)
4-3 摄像头的初始化流程及v4l2子设备驱动这个问题弄清楚了以后下面就来看获得Camera信息以后如何做后续的处理:在fimc_init_global调用结束之后我们获得了OV9650的信息,之后在probe函数里面就会继续调用一个函数:fimc_configure_subdev().这个函数的实现如下:/* * Assign v4l2 device and s转载 2012-12-04 16:03:01 · 347 阅读 · 0 评论 -
FS_S5PC100平台上Linux Camera驱动开发详解(一)
说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 2)platform_device和platform_driver工作原理 3)Linux内核V4L2驱动架构 4)Linux内核I2C驱动架构1. 摄像头工作原理OV9650/965转载 2012-12-04 16:02:05 · 346 阅读 · 0 评论 -
Driver Attributes/Device Attributes 及作为linux的一种读写接口的用法(timed_output实例)
1)Driver Attributes[cpp] view plaincopyprint?struct driver_attribute { struct attribute attr; ssize_t (*show)(struct device_driver *driver, char *buf);转载 2013-11-12 11:40:58 · 334 阅读 · 0 评论 -
DBI接口与DPI接口与DSI接口
(1)DBI接口 A,也就是通常所讲的MCU借口,俗称80 system接口。The lcd interface between host processor and LCM device list as below,The LCM driver will repeated update panel display。MCU借口通过并行接口传输控制命令和数据,并通过往LCM模组自带的转载 2013-11-12 17:10:06 · 346 阅读 · 0 评论 -
调试液晶驱动的一点心得
这几天调试一块以OTM4001A作驱动芯片的LCM模组,调试完毕后,终于有结果OK了。之前对这块一直用的不太透彻,恰好趁这次摸清楚了。需要注意的几点记录如下:(1)关于信号类型的片选。在很多LCD芯片规格书上都有关于信号片选的描述,如M2/M1/M0,典型如下:如上图,上面的三个M接口脚是有连接线直接连到主板接口上的,至于是高还是低,可以由主板硬件限定死,另一方面也可以由LCM模组自身转载 2013-11-12 16:33:21 · 449 阅读 · 0 评论 -
CSI接口Camera驱动学习
在Android4.0升级后,突然发现大量平台对Camera的支持均非常不好。要么Camera使用不稳定,要么各类ioctl设置不能使用,更有甚者,连Camera Device都不能创建。而我们的产品,基于Camera的正常工作,必须解决此类问题。选择了其中一款使用CSI接口Camera的平台:全志A20来做研究和解决。0. 基础知识 : 0.0. 目录结构:除了常转载 2013-12-11 16:19:15 · 1224 阅读 · 2 评论 -
如何调整Linux内核启动中的驱动初始化顺序
如何调整Linux内核启动中的驱动初始化顺序【问题】此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。此处,内核编译完之后,在生成的system.map中可以看到,enc28j60_init在as352x_afe_init之前,所以转载 2012-06-30 09:48:16 · 422 阅读 · 0 评论 -
linux内核多线程
1. 头文件#include //wake_up_process()#include //kthread_create()、kthread_run()#include //IS_ERR()、PTR_ERR()2. 实现2.1创建线程在模块初始化时,可以进行线程的创建。使用下面的函数和宏定义:struct tas转载 2012-05-22 09:34:27 · 712 阅读 · 0 评论 -
Linux内核I2C子系统驱动(三)
当适配器加载到内核后,就针对具体设备编写I2C设备驱动。编写设备驱动有两种方法,一种是利用系统提供的i2c-dev.c实现,另一种为i2c编写一个独立的设备驱动。一、i2c-dev.c控制i2c设备 i2c-dev.c没有针对具体设备来设计,提供了通用i2cdev_read()、i2cdev_write()函数来对应用户空间要使用的read()和write()文件操作接口转载 2012-05-30 15:06:12 · 314 阅读 · 0 评论 -
HDMI 之 HPD
HPD(Hot Plug Detection),在HDMI的一对联接中,为热插拔的实现而设计的。简单地说,当发送端接入接受端时,接受端会回应HPD信号给发送端,进而发送端会启动DDC通道,而读取接受端EDID的信息,然后进行HDCP的交互,如果双方认证成功,则视频、音频正常工作,否则联接失败,不同系统会有不同的处理。 例如,如果EDID信息不支持HDMI,则发送端只发送视频信息,而没有音转载 2012-01-04 11:50:55 · 2352 阅读 · 1 评论 -
linux下如何编写标准USB接口通信程序
最近一直在忙研究添加一个标准usb接口的读卡器,经过研究添加成功了,至于什么步骤和原理我就不说了,一切都在代码中,相信对USB有了解肯定能看懂代码,看懂代码那原理流程自然就明白了,呵呵USB读写实现:#include #include #include #include #include #include #include #include #inc原创 2012-03-12 14:10:38 · 1783 阅读 · 2 评论 -
用hexdump获取event的输出信息
当我们在调试输入设备时,如:键盘,触摸屏会使用到hexdump工具。其内容如下:1. 键盘:# cat /dev/input/event0 | hexdump0000000 f6a6 4e15 154b 0006 0001 0004 0001 00000000010 f6a6 4e15 1557 0006 0000 0000 0000 00000000020 f6a6 4e转载 2012-04-01 17:44:06 · 349 阅读 · 0 评论 -
Linux USB 鼠标驱动程序解析
USB 总线引出两个重要的链表! 一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。 USB 设备驱动程序(usb device driver)和 USB 驱动程序(u转载 2012-04-09 17:58:29 · 285 阅读 · 0 评论 -
Linux下SPI总线驱动分析
Linux下SPI总线驱动有通用接口,一般的SPI设备驱动使用这个驱动接口实现设备驱动。分析驱动最好是先了解核心代码,然后从具体设备分析入手,然后从下至上,了解整个框架,再从上到下分析,理解透彻。以下分析内核根目录均以"src"代替。内核代码http://lxr.linux.no/,版本2.6.37.2。SPI的核心代码即"src/drivers/spi/spi.c"——SPI 初始化转载 2012-04-11 14:55:55 · 1497 阅读 · 1 评论 -
红外线遥控器解码原理
红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。1 红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集转载 2012-04-14 11:55:50 · 872 阅读 · 0 评论 -
Linux USB 鼠标驱动程序解析
USB 总线引出两个重要的链表! 一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。 USB 设备驱动程序(usb device driver)和 USB 驱动程序(u转载 2012-04-14 12:39:46 · 79 阅读 · 0 评论 -
Linux USB 鼠标驱动程序解析
USB 总线引出两个重要的链表! 一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。 USB 设备驱动程序(usb device driver)和 USB 驱动程序(u转载 2012-04-14 12:41:16 · 82 阅读 · 0 评论 -
Linux内核I2C子系统驱动(二)
上一篇文章讲述了I2C子系统体系结构,总线驱动、设备驱动的知识点,下面就S3C2440 I2C总线驱动的实现详细讲解,它的源码位于drivers/i2c/busses/i2c-s3c2410.c一、I2C平台设备资源 IIC驱动中使用的平台设备与前面看门狗、rtc等方式原理相同,但定义路径有所不同,并且设置了额外一些参数。mach_smdk2440.c文件中smdk244转载 2012-05-30 15:03:57 · 420 阅读 · 0 评论 -
Linux内核I2C子系统驱动(一)
I2C子系统驱动(一)一、I2C体系结构 Linux的I2C体系结构分为3个组成部分:I2C核心、I2C总线驱动、I2C设备驱动,如下图所示。I2C核心提供总线驱动和设备驱动的注册、注销方法,algorithm;I2C总线驱动对硬件体系结构中适配器的实现,主要包括适配器i2c_adapter、适配器通信算法i2c_algorithm,如果CPU集成了I2C控制器并且lin转载 2012-05-30 14:59:31 · 349 阅读 · 0 评论 -
热敏打印机芯的控制
概要 将计算机中的一个图像,分解为输出用的线形图像数据,分别发送至打印头。对于线性图像中的每一个点,打印头会分别分配一个加热点与之对应。打印头只有安装在热敏打印机上才能发挥打印功能。在进行时打印前一定要将热敏纸压在打印头上,然后预先将纸设定在打印位置。虽然打印头只能打印点,但要打印复杂的东西如曲线、条码或图片必须由计算机软件转载 2014-04-25 11:00:23 · 2766 阅读 · 0 评论