最近在410c上研究顯示部分,想弄清楚Framebuffer中的資料是如何被送到LCD顯示的?有沒有對這塊特別熟悉的?來科普下唄!!!!
uj5u.com熱心網友回復:
主要通過Gralloc!Gralloc有2個功能:
一個是和copybit相同的,里面有MDP PPP的介面(目前沒有使用)
另一個則是刷屏(整屏刷)的介面,即將framebuffer中的資料送到lcd上,呼叫的是MDP DMA的介面
這部分的code在android\hardware\msm7k\libgralloc-qsd8k目錄下,之前沒有留意,以為沒有使用。現在可以看出開機初始化后就創建了disp_loop thread,里面的操作就是呼叫系統介面
ioctl(m->framebuffer->fd, FBIOPUT_VSCREENINFO, &m->info)
將資料送到lcd
Note:送資料的時候是2個buffer切換的
另外,上層surfaceflinger也是通過Gralloc中的介面獲知螢屏的大小,呼叫介面為
ioctl(fd, FBIOGET_VSCREENINFO, &info),info中的螢屏寬高對應的就是底層driver設定的寬高值
uj5u.com熱心網友回復:
這塊是通過排線傳輸過去的,同時也可能存在資料翻轉的問題,只需要給好它的傳輸設定電平即可。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/82630.html
標籤:Qualcomm開發
