自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

转载 协议[I2C]_I2C子系统之write()

应用层调用write()函数后首先进入的是i2c类设备的write函数,即i2cdev_fops中的write方法。此处的i2cdev_fops对应的是系统中所有i2c类设备的操作。也就是说系统中所有i2c adapter 的read()write() open() close() ioctl()等操作,首先调用的是i2c类i2cdev_fops中的方法,通过i2c类中的方法再去寻

2015-10-22 16:12:19 1863

转载 协议[I2C]_I2C子系统之 adapter driver注册——I2C_dev_init()

i2c的操作在内核中是当做字符设备来操作的,相关初始化在由i2c_dev_init函数来初始化。并且i2c adapter的驱动通过i2cdev_driver这个通用驱动的attach方法来实现注册的。下面具体分析整个过程。static int __init i2c_dev_init(void)  {          。。。 。。。      res = register

2015-10-22 16:11:00 457

转载 协议[I2C]_I2C子系统之__I2C_first_dynamic_bus_num变量的相关分析

__i2c_first_dynamic_bus_num定义的位置在/driver/i2c/i2c-boardinfo.c#include    #include      。。。 。。。    int __i2c_first_dynamic_bus_num;  EXPORT_SYMBOL_GPL(__i2c_first_dynamic_bus_num);    。。。 。。。    i

2015-10-22 16:09:31 351

转载 协议[I2C]_I2C子系统之adapter device和client device注册——I2C_add_number_adapter()

如前文所述(http://www.linuxidc.com/Linux/2012-08/68263.htm),在probe函数会调用函数i2c_add_number_adapter(),通过此函数来实现adapter device和client device的注册i2c_add_number_adapter()函数如下:int i2c_add_numbered_adapte

2015-10-22 16:08:12 380

转载 协议[I2C]_I2C子系统之I2C总线时钟频率设置

时钟相关基本知识可先参考这篇http://www.linuxidc.com/Linux/2012-02/54968.htm下面直接从总线时钟初始化函数开始分析:void __init s3c244x_init_clocks(int xtal)  {      /* initialise the clocks here, to allow other things like the

2015-10-22 16:03:23 3472

转载 协议[I2C]_I2C子系统之platform_driver初始化——I2C_adap_s3c_init()

在完成platform_device的添加之后,i2c子系统将进行platform_driver的注册过程。platform_driver的注册通过调用初始化函数i2c_adapter_s3c_init函数来完成。i2c_adap_s3c_init()函数体如下:static int __init i2c_adap_s3c_init(void)  {      return

2015-10-22 16:02:21 394

转载 协议[I2C]_I2C子系统之platfor_device初始化——smdk2440_machine_init()

调用完函数i2c_init后(见 I2C子系统之I2C bus初始化——I2C_init() http://www.linuxidc.com/Linux/2012-08/68261.htm) 系统将成功创建i2c总线。初始化完毕总线后还需要接着初始化i2c设备和i2c驱动(一般是先初始化device),对于2440来说,linux内核中的device初始化一般是通过platform devic

2015-10-22 16:00:48 405

转载 协议[I2C]_I2C子系统之I2C bus初始化——I2C_init()

根据前文的分析(http://www.linuxidc.com/Linux/2012-08/68260.htm),在linux内核启动的时候最先执行的和I2C子系统相关的函数应该是driver/i2c/i2c-core.c文件中的i2c_init()函数。下面具体此函数具体做了那些预备工作。1.i2c总线的注册i2c_init()的函数实现如下:static int _

2015-10-22 15:59:31 639

转载 协议[I2C]_I2C子系统之内核中I2C子系统的结构

本文开始,分析内核的i2c子系统。说明:1.分析的内核版本为2.6.37.1           2.开发板为TQ2440,板载ARM9(S3C2440)           3.I2C设备为AT24C02           4.分析顺序就是内核I2C子系统的注册顺序(即本系列文章发表的先后顺序)。在正式进入代码分析前应摸清各初始化函数的执行先后顺序,清楚这个顺序后对

2015-10-22 15:58:17 380

转载 协议[I2C]_I2C子系统之总结

I2C子系统的结构是符合内核总的驱动模型。I2C 子系统主要包含4大部件1.i2c bus2.adapter device3.client device4.adapter driver其中i2c bus是用于管理的,并非是通信总线。i2c bus上挂着adapter(主机) device、client(从机) device、adapter driver。为了统一操作,adapter

2015-10-22 15:57:07 329

转载 协议[I2C]_I2C子系统之ioctl()

根据前一篇的文章介绍 at24c02的读写方式有很多种,写有两种1.写一字节数据到word address处2.从指定的word address处开始写一页数据,此word address需要页对齐!读有三种1.从at24c02当前的word address读一字节数据2.从指定的word address 读数据3.从当前的word address地址开始读一串数据根据驱动中wri

2015-10-22 15:55:48 538

转载 协议[I2C]_I2C子系统之at24c02读写测试

结合ioctl和at24c02的介绍,写了个at24c02的测试程序测试硬件平台:TQ2440、at24c02内核版本:linux-2.6.37.1读写单独分开成两个小程序。相关阅读:I2C子系统之at24c02读写测试 http://www.linuxidc.com/Linux/2012-08/68256.htmI2C子系统之ioctl()  http://www.lin

2015-10-22 15:54:46 462

转载 协议[I2C]_I2C子系统之at24c02简介

AT24C02存储规格总共32个page,每个page为8byte。总共256KB(2Kb),地址的长度需要使用8bit(刚好可以用来表示256个字节的地址)来表示。AT24CC02的地址设备的地址由8bit组成,前4 bit是固定的(1010);接着的3 bit

2015-10-22 15:52:57 408

转载 android MTK驱动背光唤醒流程

在标准的android驱动中,睡眠唤醒流程非常清晰,能够较方便的更改lcd唤醒时间和led背光的点亮时间,但是也很容易出现问题,比如说闪屏,唤醒慢!     出现闪屏有两个原因1、 开背光时间在唤醒lcd前!2、 开背光时间在唤醒lcd后,但是没有等lcd刷屏就点亮背光!我按照标准驱动流程去分析mtk的做法 他的video最初的注册位置是Me

2015-10-22 10:44:23 509

转载 自旋锁(spinlock) 解释得经典,透彻

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。  由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。  信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_trylock的

2015-10-16 11:25:14 1301

转载 Makefile经典教程(掌握这些足够)

makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make

2015-07-18 17:46:23 279

转载 语言[C/C++]_按位与、或、异或等运算方法

按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;       即:两位同时为“1”,结果才为“1”,否则为0例如:3&5  即 0000 0011 & 0000 0101 = 0000 0001   因此,3&5的值得1。 另,负数按补码形式参加按位与运算。“与运算”的特殊

2015-07-15 15:50:37 433

转载 Qualcomm Camera基础

高通将android的camera模块重新修改了一下,与原生的方式存在一些差异。这里将前段时间学习的一些零散知识进行一下总结,便于以后查阅。1.整个模块主要巡行三个主线程:control、config及frame,control用来执行总的控制,是上层控制接口(这个线程还未去了解)?config主要进行一些配置,这个线程里面主要进行3A的工作,另外还有一些跟效果有关的设置;至于frame线程好

2015-06-30 19:09:19 799

转载 模块[LCD]_LCD 调试总结

(1) 液晶显示模式 并行:MCU接口、RGB接口、Vysnc接口串行:SPI接口、MDDI接口(2) 屏幕颜色实质上即为色阶的概念。色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的色彩指数。目前彩屏手机的色阶指数从低到高可分三个层次,最低单色,其次是256色、4096色、 65536色;目前最高的为26万色。256=2的8次方,即8位彩色,依次律推,65536色=2的

2015-06-11 17:32:18 2064

转载 模块[LCD]_Android LCD(四):LCD驱动调试篇

这篇我们以一个实例来说明,Samsung Exynos4412搭配TTL转LVDS芯片SN75LVDS83B、LVDS接口LCD为例说明。从硬件接口、驱动配置、背光PWM调节三部分说明。下载:SN75LVDS83B规格书一、LCD接口原理以及硬件电路Samsung Exynos4412、SN75LVDS83B、LVDS接口LCD(24bit)为例说明,三者的关系如下:

2015-03-19 10:41:40 1688 1

转载 模块[LCD]_Android LCD(三):Samsung LCD接口篇

这篇文章中转载的成分比较多,不过大部分内容是从芯片手册上翻译过来。Framebuffer部分是黄冈老师--《嵌入式Linux之我行》这一系列博客中的,嵌入式Linux之我行这系列博客写的非常精,我刚学习Linux时经常拜读他的博客。这部分内容比较固定,三星的芯片跟新了好多代,不过这部分变化不大,技术是一个积累的过程,感谢那些前辈给我们整理比较好的学习资料,有比较好的技术继承。这篇从LC

2015-03-19 10:39:21 787

转载 模块[LCD]_Android LCD(二):LCD常用接口原理篇

TFT-lCD常用的接口,TTL(RGB)、LVDS、EDP、MIPI,这篇我们大致说一下这些接口的信号组成已经基本原理。一、TTL1、TTL接口概述TTL(Transistor Transistor Logic)即晶体管-晶体管逻辑,TTL电平信号由TTL器件产生。TTL器件是数字集成电路的一大门类,它采用双极型工艺制造,具有高速度、低功耗和品种多等特点。TTL接口属于并

2015-03-19 10:38:54 829

转载 模块[LCD]_Android LCD(一):LCD基本原理篇

第一份工作、第一家公司,是做电视方案的,那段时间整天和LCD屏打交道,从7”到42”的都有调试过。那时没毕业,学校学习的东西跟工作差别比较大,不是太懂。不过那个公司的同事都很好,感谢他们细心的指导,也感谢第一家公司的工作机会和优厚的待遇(对学生来说很多)、很好的工作机会。 之后转行做平板,离开第一家公司,如果有机会、或者有足够的能力,一定会回报那些帮助过我的热心人,“滴水之恩,涌泉相报”。

2015-03-19 10:34:44 887

转载 模块[camera]_变焦与对焦(转自csdn)

转自:http://blog.csdn.net/lizhiguo0532/article/details/6918849#comments声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。 一、变焦       通常指通过移动镜头内的透镜镜片位置来拉长或缩短焦距,也叫ZOOM。

2015-03-12 16:52:08 1999

转载 模块[camera]_摄影基础知识: 曝光补偿完全指南

转自:http://hd3g.gxnews.com.cn/viewthread.php?t=7410090摄影基础知识: 曝光补偿完全指南作者:苞谷汁儿[1楼]用过数码相机的朋友也许会注意到一个细节,在相机的手册里或者菜单里都可以发现一个叫“EV”的可变参数,EV就是曝光补偿,这个不起眼的EV参数你会使用吗?什么是“曝光补偿”的含义呢?这就是本文所要讲的主题。

2015-03-12 16:49:51 2277

转载 模块[camera]_ISP与DSP的区别

ISP 是Image Signal Processor 的简称,也就是图像信号处理器。而DSP是Digital Signal Processor 的缩写,也就是数字信号处理器。ISP一般用来处理Image Sensor(图像传感器)的输出数据,如做AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除坏点、A

2015-03-12 16:49:30 4421

转载 模块[camera]_RGB/HSV/YUV颜色空间模型总结

转自:http://blog.sina.com.cn/s/blog_679741950100ivz0.html颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。

2015-03-12 16:47:35 802

转载 模块[camera]_关于光源色温与标准光源的讨论

转自:http://hi.baidu.com/baodao/item/1a372cd04eae86312b35c701以绝对温度K来表示,即将一标准黑体加热,温度升高到一定程度时颜色开始由深红-浅红-橙黄-白-蓝,逐渐改变,某光源与黑体的颜色相同时,我们将黑体当时的绝对温度称为该光源之色温。因相关色温度事实上是以黑体辐射接近光源光色时,对该光源光色表现的评价值,并非一种精确的颜色对

2015-03-12 16:47:27 1147

转载 模块_camera isp(Image Signal Processor)

转自:http://blog.csdn.net/shenbin1430/article/details/60654441. 目标[52RD.com]手机摄像头模组用ISP功能模块的市场走向及研发方向。为能够正确认识手机摄像模组行业提供技术及市场依据。[52RD.com]2. ISP在模组上的应用原理[52RD.com] 2.1 功能区域[52RD.com] 无论

2015-03-12 16:46:28 567

转载 模块[camera]_camera调试工具

转自:http://www.52rd.com/bbs/Dispbbs.asp?BoardID=86&ID=69390一、ISO12233 Camera Resolution ChartISO12233分辨率测试标板遵照ISO12233的标准“摄影-电子照相画面-衡量方法"。这个测试标板在1 X 大小的这个活动区域,测量20 cm 高度只有约0.1毫米的误差。他具有几乎大部分

2015-03-12 16:44:18 606

转载 模块[camera]_LED-白平衡

转自:http://blog.sina.com.cn/s/blog_771419e70100pw4m.html白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应用的较早,现在家用电子产品(家用摄像机、数码照相机)中也广泛地使用,虽然技术的发展使得白平衡调整变得越来越简单容易,但许多使用者

2015-03-12 16:43:07 779

转载 模块[camera]_摄像头的YUV

搞驱动,时间长了便成万事通,要做摄像头相关,那就顺便瞧瞧:YUV,是一种颜色编码方法。YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”是色度(Chrominance)“V”则是浓度(Chroma),

2015-03-12 16:42:06 562

转载 模块[camera]_CMOS Sensor的调试经验分享

转自:http://bbs.52rd.com/forum.php?mod=viewthread&tid=276351CMOS Sensor的调试经验分享     我这里要介绍的就是CMOS摄像头的一些调试经验。  首先,要认识CMOS摄像头的结构。我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头、感应器和图像信号处理器构成。一般情况下,集成好的模组我们只看到外面的镜头

2015-03-12 16:39:09 3770 1

转载 六、Camera

1.MT6575上mclk设为 26Mhz时,占空比不是50%MT6575上26Mhz mclk设置后占空比不是50%, 量到为61.7%.2.Camera上电开 power(DVDD, AVDD, IOVDD)之间间隔时间太长3.如何配置 lens首先需要向sensor的vendor了解,使用的sensor是否内嵌lens的driver IC如OV5640和MT9P0

2015-03-03 13:42:55 983

转载 五、FM

1,FM支持哪些音频方式Line in模拟方式和I2S数字方式。硬件工程师要确定原理图上选择的是哪种方式,然后进行如下配置。l  Line inMTK_FM_RX_AUDIO=FM_ANALOG_INPUTMTK_FM_TX_AUDIO=FM_ANALOG_OUTPUTl  I2SMTK_FM_RX_AUDIO=FM_DIGTAL_INPUTMTK_FM_T

2015-03-03 13:41:50 731

转载 四、Driver - Misc

1.关于MTK平台支持的耳机:一般手机(包括Nokia、三星等)是:L、R、MIC、GND。小米、iPhone、HTC等是:L、R、GND、MIC。MTK 平台目前支持第一种:L、R、MIC、GND。 (对于一般3线制耳机MTK也支持)。2.DCT配置GPIO的设置/初 始化:1)当配置GPIO时,有的有勾选M0~M7中的两个,甚至有的还需要勾选勾选多个?最后GPIO配

2015-03-03 13:40:50 393

转载 三、Driver input system

1.如何添加新的kernel模块:参考 [FAQ08517](1)create new folderalps\mediatek\custom\common\kernel\newdevice\device_a-->notice need create 2 folder: newdevice\device_a(2) copy your code in device_a(co

2015-03-03 13:39:55 339

转载 二、Driver - Battery Charging

1.充电方式a.PMIC直接充电:驱动代码位于:mediatek\platform\mt6592\kernel\drivers\power\charging_hw_pmic.cb.switch charge方式充电(switch charger是功率转换型的芯片)。驱动代码位于:mediatek\platform\mt6592\kernel\drivers\power\ch

2015-03-03 13:37:57 886

转载 一、Display

1.lcm 相关概念1.1) MIPI接口:一共有三种接口:DBI(也做CPU或MCU接口)、DPI(也叫RGB接口)、DSI.在使用DSI接口时,目前75/77都只支持到2条data lane,加上一条clock lane.使用DPI接口时,根据LCM IC支持的情况,可以选择16bus、18bus传输RGB格式文件,在GPIO部分分为R、G、B分别对应 8个GPIO(GPI

2015-03-03 13:35:59 3191

转载 理解 Android Build 系统_结束语_7

整个 Build 系统包含了非常多的内容,由于篇幅所限,本文只能介绍其中最主要内容。由于 Build 系统本身也是在随着 Android 平台不断的开发过程中,所以不同的版本其中的内容和定义可能会发生变化。网络上关于该部分的资料很零碎,并且很多资料中的一些内容已经过时不再适用,再加上缺少官方文档,所以该部分的学习存在一定的难度。这就要求我们要有很强的代码阅读能力,毕竟代码是不会说谎

2015-02-28 15:42:10 376

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除