pandaboard 安装_linux fb设备(pandaboard) | 学步园
fb設(shè)備主要作用是獲取幀buffer, 并設(shè)置,用于顯示。
fbmem是主要的框架層和抽象層。 每個(gè)具體的平臺(tái)的幀設(shè)備是在調(diào)用platform_driver_register注冊(cè)之后,由其probe函數(shù)調(diào)用create framebuffer將fbinfo設(shè)置給registered_fb(數(shù)組, 不同的fb設(shè)備有不同 的index)的, 在pandaboard中, 這個(gè)注冊(cè)函數(shù) 是omapfb_create_framebuffer。
一些平臺(tái)的幀設(shè)備比較復(fù)雜, 可以支持眾多的顯示設(shè)備。比如pandaboard, 支持dsi/lcd/hdmi等等。所有這些顯示設(shè)備都被掛在dss上(有這個(gè)linux的總線)。
這些具體的設(shè)備通過(guò)omap的dipc的dma傳送顯示數(shù)據(jù)。至于hdmi另外還有專(zhuān)門(mén)的audio的dma。這些dma從sram或者sdram中搬數(shù)據(jù)到最終的顯示設(shè)備。 而這些sram或者sdram就是所謂的幀buffer(幀緩沖區(qū))。 顯示設(shè)備保存在omapfb2_device的displays數(shù)組中(display all)。 最大10個(gè)。這個(gè)包括了omapfb_info中返回的display ys(ofbi->overlays[i]->manager->device, 亂取的名字, 為了和displa
all區(qū)別). display ys在display設(shè)備的driver注冊(cè)的時(shí)候被設(shè)置( dss_recheck_connections). 這里似乎發(fā)現(xiàn)如果同時(shí)連接lcd, hdmi, 將有一個(gè)會(huì)被覆蓋!!!在fb操作時(shí), 操作的就是這個(gè)display ys, 比如hdmi。
fb設(shè)備通常有兩個(gè)幀緩沖區(qū)(由CONFIG_FB_OMAP2_NUM_FBS決定). 幀緩沖的size和物理首地址由def_vram參數(shù)在具體幀設(shè)備模塊加載的時(shí)候決定。從代碼看, 有幾個(gè)幀緩沖區(qū)就有幾個(gè)fb設(shè)備(device_create創(chuàng)建的設(shè)備節(jié)點(diǎn))。
不同的fbinfo對(duì)應(yīng)不同的fb設(shè)備, 與設(shè)備文件的minor節(jié)點(diǎn)對(duì)應(yīng)。他們都在同一個(gè)omapfb2_device結(jié)構(gòu)下。 pandaboard最多有10個(gè)fbinfo.盡管有幾個(gè)不同的fbinfo, 但是從fb2display代碼來(lái)看, 所有的都應(yīng)該指向相同的display ys。
中斷都被加進(jìn)dispc的中斷數(shù)組。這些中斷在dispc硬件中斷時(shí)被處理。
其中有個(gè)中斷就是vsync, 這個(gè)會(huì)被android4.2的surfaceflinger的hwcomposer使用。 vsync中斷處理函數(shù)調(diào)用vsync_work, 這個(gè)work會(huì)發(fā)kobject_uevent_env。 這樣用戶(hù)空間將知道這個(gè)vsync。
所有顯示設(shè)備(hdmi/lcd等)掛在omapdss總線。
omap_dss_init時(shí), 注冊(cè)omapdss總線。并注冊(cè)omap_dss_driver驅(qū)動(dòng), 這個(gè)驅(qū)動(dòng)的probe函數(shù)omap_dss_probe將調(diào)用omap_dss_register_device注冊(cè)所有相關(guān)的設(shè)備, 包括顯示設(shè)備。這些設(shè)備是在平臺(tái)初始化的時(shí)候加到omap_dss_board_info的(arch/arm下), omap_dss_register_driver注冊(cè)相關(guān)的driver。這些設(shè)備將在omapfb_probe時(shí)加到omapfb2_device的display數(shù)組。
ofbi->num_overlays = 1;: 僅有一個(gè)overlay
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的pandaboard 安装_linux fb设备(pandaboard) | 学步园的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lokijs可以用mysql_JavaS
- 下一篇: linux 查看文件哈希码,使用linu