关于display相关的一些内容(总体)

关于display相关的一些内容(总体)

请看《关于linux的通用显示框架和android显示框架(必读的总结).docx》

一定要明白各个部分之间的关系,哪些部分为了Rendering渲染,哪些部分为了送显。

android或其他显示架构中,应用向类似android的surfaceflinger申请buffer,然后使用gpu在各自的buffer中渲染(画)相应的图,然后类似android的surfaceflinger会把所有的显示的buffer做图层的merge处理(利用hardware composer),合并到framebuffer中,framebuffer本身申请的内存能存两个屏幕的数据量还大的内存,所以采样交替送显的方式进行eglSwapBuffers交换(即fb_pan_display指定切换到另外framebuffer的另一部分地址),即framebuffer的A部分用于merge处理,framebuffer的B部分用于送显显示,下一个节拍(例如vsync节拍)时,进行切换,framebuffer的A部分送显,framebuffer的B部分用于merge。送显的内容除了framebuffer外,还有overlay的内容,硬件会把他们进行合并,再送到显示屏幕。

新的DRM架构
对于新的DRM架构,单独的FB driver已经没有了,而是被集合到了drm驱动里面。
即DRM framebuffer和以前的framebuffer driver的framebuffer是两个不同的内存。
见Drm_fb_helper.c (drivers\gpu\drm): 对register_framebuffer(info)的调用。

LCD Display Signals and Timing
The basic signals needed are:
VSYNC (Vertical Sync)
Used to reset LCD row pointer to top of display
HSYNC (Horizontal Sync)
Used to reset LCD column pointer to edge of display
D0 –Dxx (1 or more data lines)
Data lines to send display data
CLK (LCD clock)
Used to control the refresh rate
Other signals (optional)
LCD Power, Backlight power, touch screen

lcd panel的接口分类
1)RGB并行信号2)MIPI接口—使用DCS指令集,DSI命令设置
3)LVDS
4)HDMI
5)其他

后续文章,将陆续介绍RGB、LVDS、MIPI屏接口的一些注意事项。

详细请看我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

原文地址:https://blog.51cto.com/8906847/2367992

时间: 2024-11-11 13:24:32

关于display相关的一些内容(总体)的相关文章

关于display相关的一些内容—其他杂项

关于display相关的一些内容-其他杂项 注意屏内的driver IC和panel屏的区别 屏所使用的driver ic的配置需求.一般一款driver IC会用于多种尺寸的多款lcd屏(几种分辨率),然后driver IC的spec上会列出支持的最大分辨率,最大分辨率以下的其他分辨率可以通过寄存器配置,可以固化在firmware的OTP上.一般屏幕生产时会把driver IC和panel做成一套.而panel的分辨率是固定某个值.针对这个屏,因为屏参数固定了,有很多屏内部会有nvram保存固

关于display相关的一些内容—MIPI panel的调试

关于display相关的一些内容-MIPI panel的调试 MIPI接口中DSI - Command and Video ModesDSI-compliant peripherals support either of two basic modes of operation:Command ModeSending command and send/receive data to/from peripheral.Video ModeTransfer of real-time pixel dat

关于display相关的一些内容—lvds接口

关于display相关的一些内容-lvds接口 lvds接口<显示lvds–LVDS接口分类,时序,输出格式.docx>需要注意的是,lvds设置的时钟频率是像素时钟频率,即(H_PW+ H_BP+ H_VD+ H_FP) (V_PW+V_BP+V_VD+V_FP) fps. 经验:所以出现屏幕闪烁严重,而且是一线一线的花屏,那么一定要注意clock,测量一下,看看频率对不对.不要光相信软件设置是多少,实际硬件就多少. 注意vsync.hsync信号跟RGB屏不同,不是独立的信号线,而是特定b

关于display相关的一些内容—关于RGB接口屏调试

关于display相关的一些内容-关于RGB接口屏调试 1)关于VBP.VFP.HFP.HPB的影响 需要注意的是,对于像RGB接口tft9k23553 这样的tft屏,本身支持通过硬件拉高或者拉低两个管脚来控制扫描的方向和起始点,从而实现上下屏镜像或者左右屏镜像.本身不存储一帧数据,所以只是通过扫描方向和起始点实现此种镜像.但是如果调整了一个方向后,你再硬件修改了上下镜像方向,那么VBP和VFP可能需要重新调整,HFP和HBP不需要调整.否则出现图像被往上或者往下推了.但是如果调整了一个方向后

Extjs4对Model定义相关的校验内容

方法名称在添加上一个Message就可以 设置错的内容了 config的内容如下 config配置内容 value,用户传递的值 来自为知笔记(Wiz)Extjs4对Model定义相关的校验内容,布布扣,bubuko.com

RoundTo 及其相关的一些内容总结

1.Round(四舍六入五留双) 功能说明:对一个实数进行四舍五入.(按照银行家算法) 例:var    i, j: Integer;begin    i := Round(1.5); // i等于2    j := Round(2.5); // j等于2end; 在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双.即当舍或入位大于或小于五时按四舍五入来处理 ,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值.例:  

C++ 第三十四天:类相关的一些内容

复习 // 以下内容含个人见解 Ⅰ.有时不得不用到“构造函数初始值列表”,原因是有些编译器不支持类内初始值,这样做可以避免在函数体内初始化. 需要注意的是:被初始化列表忽略的数据成员将被默认初始化(结果取决于位置,可能产生可怕后果).下面是构造器的 N 种情况: 程序员直接忽略构造器 --> 产生默认合成的构造函数 --> 成员被默认初始化 --> 不确定的结果. 给数据成员提供初始值(Java 中所谓的属性初始化),不写构造函数 --> 默认合成的构造函数使用提供的初始值初始化对

filebeat相关registry文件内容解析

filebeat的registry文件中存放的是被采集的所有日志的相关信息. linux中registry中一条日志记录的内容如下 {"source":"/var/log/messages","offset":5912,"FileStateOS":{"inode":38382035,"device":64768},"timestamp":"2017-03-1

【linux】 linux中的进程管理相关的一些内容

_ linux进程管理 ■ top top命令用于动态地查看系统的进程和其他一些资源的信息.开启top的时候可以加上-t <sec>来设置top更新的频率高低.进入top界面之后,可以输入一些命令比如P表示以cpu资源占用率对进程排序,M表示以内存的使用率排序进程,N表示以PID的顺序排序等等.想要知道更多命令可键入?来查看 top的界面说明: 第一行:<当前时间> <开机到目前的总时间> <登录用户人数> <系统最近一分钟.五分钟.十五分钟的平均负载