您好,登錄后才能下訂單哦!
請看《關(guān)于linux的通用顯示框架和android顯示框架(必讀的總結(jié)).docx》
一定要明白各個(gè)部分之間的關(guān)系,哪些部分為了Rendering渲染,哪些部分為了送顯。
android或其他顯示架構(gòu)中,應(yīng)用向類似android的surfaceflinger申請buffer,然后使用gpu在各自的buffer中渲染(畫)相應(yīng)的圖,然后類似android的surfaceflinger會把所有的顯示的buffer做圖層的merge處理(利用hardware composer),合并到framebuffer中,framebuffer本身申請的內(nèi)存能存兩個(gè)屏幕的數(shù)據(jù)量還大的內(nèi)存,所以采樣交替送顯的方式進(jìn)行eglSwapBuffers交換(即fb_pan_display指定切換到另外framebuffer的另一部分地址),即framebuffer的A部分用于merge處理,framebuffer的B部分用于送顯顯示,下一個(gè)節(jié)拍(例如vsync節(jié)拍)時(shí),進(jìn)行切換,framebuffer的A部分送顯,framebuffer的B部分用于merge。送顯的內(nèi)容除了framebuffer外,還有overlay的內(nèi)容,硬件會把他們進(jìn)行合并,再送到顯示屏幕。
新的DRM架構(gòu)
對于新的DRM架構(gòu),單獨(dú)的FB driver已經(jīng)沒有了,而是被集合到了drm驅(qū)動里面。
即DRM framebuffer和以前的framebuffer driver的framebuffer是兩個(gè)不同的內(nèi)存。
見Drm_fb_helper.c (drivers\gpu\drm): 對register_framebuffer(info)的調(diào)用。
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命令設(shè)置
3)LVDS
4)HDMI
5)其他
后續(xù)文章,將陸續(xù)介紹RGB、LVDS、MIPI屏接口的一些注意事項(xiàng)。
詳細(xì)請看我的免費(fèi)的linux各種驅(qū)動開發(fā)課程如下:
https://edu.51cto.com/course/17138.html
另外我的相關(guān)培訓(xùn)視頻請看:
歡迎觀看我發(fā)布的各個(gè)課程: https://edu.51cto.com/lecturer/8896847.html
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。