admin 管理员组

文章数量: 887021

45.帧缓冲设备(Framebuffer),LCD

目录

lcd的硬件原理

framebuffer 设备


写写加深印象

lcd的硬件原理

第18章LCD设备驱动之LCD 硬件原理_xiezhi123456的博客-CSDN博客

LCD硬件原理_Linux -CSDN博客

1.LCD屏有很多个像素点,分辨率即像素的个数

2.背后有一个电子枪,在像素时钟信号CLK的驱动下从左往右自动打点,每一个CLK移动一个像素

3.电子枪每次打点,都会从framebuff内取相应的数据,发出不同强度红绿蓝三种光,组合成相应的颜色。每个像素点在framebuff内都有对应的数据位存放数据。framebuff大小跟屏幕一样大。

4.当电子枪打到最右边的时候,HSYNC行同步信号控制电子枪到下一行的最左边。

5.当电子枪打到最后一行最右边,VSYNC帧同步信号控制电子枪回到第一行最左边的第一个像素。

6.一行打完,在行同步信号的控制下电子枪回到最左边需要时间,回到最左边准备好开始打也需要时间。

    整个屏幕打完,在帧同步信号的控制下电子枪回到第一个像素点需要时间,回到第一个像素点后开始准备打点也需要时间。

      这些没有打点的时间,称为屏幕的边框黑框

framebuffer 设备

Linux的帧缓冲设备(Framebuffer)简介_daniel_新浪博客

framebuffer 设备_longjingcha110的博客-CSDN博客

15.linux-LCD层次分析(详解) - 诺谦 - 博客园

16.Linux-LCD驱动(详解) - 诺谦 - 博客园

帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备。

从驱动的角度来说, fb是一个典型的字符设备,在其最顶层的文件drivers/video/fbmem.c的入口函数中,只创建了字符设备和创建类,却没有创建类下面的设备节点。

framebuffer中的fileoperations结构体中有设备的打开、读写、IOctrl等函数接口,里面主要是对fb_info结构体进行操作。

fb_info结构体就是对具体硬件设备的描述,需要用户根据实际的硬件进行注册设置,注册时fb_info结构体会穿件设备节点

显然要写个LCD驱动程序,需要以下4步:

1) 分配一个fb_info结构体: framebuffer_alloc();

2) 设置fb_info

3) 硬件相关的操作(设置中断,LCD时钟频率,显存地址, 配置引脚... ...)

4 注册fb_info: register_framebuffer()

本文标签: 45帧缓冲设备(Framebuffer) LCD