您好,登錄后才能下訂單哦!
請看《關于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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。