Linux驱动LCD driver学习总结

这篇文章写于13年11月,这里仅记录一下曾经涉猎了这方面的知识,可能对以后的一些知识了解有所帮助

关于platform总线模型,可以参考之前的一篇文章Linux驱动Platform总线模型,这对frameBuffer的驱动注册可能有所帮助

一、LCD硬件框架

二、LCD软件框架

三、LCD初始化流程

四、LCD on与off的流程

五、LCD数据流

六、驱动程序framebuffer

所在文件

/android/kernel/drivers/video/fbmem.c

/android/kernel/drivers/video/msm/msm_fb.c

帧缓冲(framebuffer)是linux系统为线索设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,上层应用程序可直接对framebuffer进行读写操作。

调用register_framebuffer(struct fb_info *fb_info)可注册framebuffer,注册framebuffer实际上会把fb_info放到一个全局数组里面,到后面需要用时会到数组里面取相关信息

结构体fb_info中比较重要的有

①struct fb_var_screeninfo var,记录用户可修改的显示控制器参数

fb_var_screeninfo结构中的颜色位域struct fb_bitfield

②struct fb_fix_screeninfo fix,记录用户不能修改的显示控制器参数,如物理地址,长度

七、驱动程序mipi_dsi

所在文件/android/kernel/drivers/video/msm/mipi_dis.c

八、驱动程序mdp

所在文件/android/kernel/drivers/video/msm/mdp.c

九、驱动程序hx8369

所在文件

/android/kernel/drivers/video/msm/mipi_HX8369B_video_wvga_pt.c

/android/kernel/drivers/video/msm/mipi_HX8369B.c

十、驱动程序板级文件

所在文件/android/kernel/arch/arm/mach-msm/board-msm7627a-display.c

最后,辛苦了

时间: 2024-08-28 20:05:34

Linux驱动LCD driver学习总结的相关文章

linux驱动之i2c学习

最近在研究linux的i2c驱动,从最底层i2c控制器初始化到应用层与i2c设备交互基本打通了. 一.linux的i2c架构可以用下图表示: IIC适配器对应一条i2c总线,linux里面用i2c_adapter结构表示.总线下的i2c设备用i2c_client结构表示.algorithm是i2c的通信协议,IIC核心层负责注册/注销i2c_adapter.注册/注销i2c_client.注册i2c总线等操作.i2c-dev对应的是i2c-dev.c,它负责将总线实例化为一个i2c_client

linux驱动开发学习路线

这篇文章是和大四学弟交流的文章,贴出来,和大家学习讨论 需要掌握的基本技能: C/C++/ python shell makefile linux基本操作 以android手机为例,我通俗的介绍下市场上产品的软件结构. 手机---> 硬件:cpu(arm架构单片机)+各种传感器(显示屏.距离传感器.温度传感器.gms模块 gprs模块等等).本质上手机就是一个单片机加上一堆传感器,单片机控制各个传感器与人进行负责的交互.(驱动工程师就是在linux底层让传感器可以工作,然后提供控制硬件的接口交给

Linux驱动学习步骤(转载)

1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出. 5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现. 在ioctl里完成从用户空间向内核空间传递结构体的实现. 6. 写一bl

linux 驱动学习笔记01--Linux 内核的编译

由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make config(基于文本的最为传统的配置界面,不推荐使用)#make menuconfig(基于文本菜单的配置界面)#make xconfig(要求 QT 被安装)#make gconfig(要求 GTK+被安装)在配置 Linux 2.6 内核所使用的 make config. make menuconfig. mak

Linux驱动开发学习的一些必要步骤

1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出. 5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现. 在ioctl里完成从用户空间向内核空间传递结构体的实现. 6. 写一bl

Linux内核(17) - 高效学习Linux驱动开发

这本<Linux内核修炼之道>已经开卖(网上的链接为: 卓越.当当.china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完.同时我也把书中一部分自己的感悟抽出来整理了精华版,share出来.当然水平有限,错漏之处有发现而修订时遗漏的,也有尚没有发现的.这本书

linux驱动之LCD(无framebuffer)

<简介> a:什么是液晶 物质一般有三态,固态,气态,和液态.这只是一种比较大致的划分,但是有些物质介于液体和固体之间--液晶.一般固体的分子或原子都由固定的排列方式,但是液晶介于固体和液体之间,具有流动性和排列性,可以用磁场来改变液晶的排列方式. b:LCD背光 场致发光(Electro-Luminescent),寿命5000-10000小时,常用于小型灰度LCD(俗称黑白) 冷阴极荧光灯(cold cathode fluorecsent lamp),寿命超过250000小时(原理:对填充惰

Linux驱动学习之驱动开发准备工作

一.开启驱动开发之路 1.驱动开发的准备工作 (1)正常运行linux系统的开发板.要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的.原因在于在安装模块的时候会进行安全性校验 (2)内核源码树,其实就是一个经过了配置编译之后的内核源码.我们需要内核源码编译自己的模块 (3)nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器.这对于驱动开发前期是不可或缺的,能够提高我们的开发效率. 2.驱动开发的步骤 (1)驱动源码编写.Makefile编写.编译 (2)

linux驱动之i2c子系统device注册driver注册简单分析

Linux 驱动设计主要是根据分层分离思想,i2c子系统分为i2cocre.adapter.及device_driver层,其实adapter也是个device,只不过是我们主控芯片的I2C控制接口而已,我们的主控芯片有几个I2C接口就有几个adapter; i2ccore这一层linux已经帮我们实现,主要的工做是类似platform总线的作用,负责drvier及设备的注册,相比platform多了个adapter的注册管理工作,以及i2c的数据发送接收等等算法,说算法有点夸大,其实就是按照i