在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高清嵌入式系統(tǒng)中的DVI驅(qū)動開發(fā)

            高清嵌入式系統(tǒng)中的DVI驅(qū)動開發(fā)

            作者: 時間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

            3 Linux的幀緩沖設(shè)備
            3.1 framebuffer機(jī)制
            framebuffer(幀緩沖)是出現(xiàn)在Linux2.2.xx之后版本內(nèi)核的一種程序接口,在Linux體系中它居于上層應(yīng)用程序和底層顯示設(shè)備之間。framebuffer屏蔽了不同顯示設(shè)備間的差異,將顯示設(shè)備抽象為幀緩沖區(qū),它是一種供用戶態(tài)實現(xiàn)直接寫屏的抽象設(shè)備。framebuffer可
            以看成是顯存的一個映像,用戶通過內(nèi)存映射將其映射到進(jìn)程的地址空間后,通過對顯示緩沖區(qū)的讀寫操作可直接控制LCD的屏幕輸出。
            frameBuffer設(shè)備主要基于linux/include/linux/fb.h和linux/drivers/video/fbmem.c這兩個文件。fb.h中包含了與幀緩沖設(shè)備相關(guān)的重要的數(shù)據(jù)結(jié)構(gòu)。fbmem.c是framebuffer機(jī)制的核心程序,它為上層應(yīng)用程序提供了通用接口,同時也為下層特定硬件提供了接口。其內(nèi)的函數(shù)可對具體硬件進(jìn)行操作,比如對寄存器進(jìn)行設(shè)置,對顯示緩沖進(jìn)行映射等。
            3.2 幾個重要的數(shù)據(jù)結(jié)構(gòu)
            (1)struct fb_info
            這個結(jié)構(gòu)是Linux為幀緩沖區(qū)設(shè)備定義的層接口,它包含了關(guān)于幀緩沖設(shè)備屬性和操作的完整描述,部分成員定義如下:
            b.jpg
            其中,var記錄用戶可以修改的顯示控制器參數(shù),包括屏幕分辨率和每個像素的位寬等;fix記錄用戶不能修改的顯示控制器參數(shù);cmap為當(dāng)前的顏色表;fbops指向?qū)Φ讓佑布僮鞯暮瘮?shù)集;dev表示幀緩沖設(shè)備;screen_base為I/O映射的虛擬基地址。
            (2)struct fb_ops
            該結(jié)構(gòu)提供了指向底層操作的函數(shù)指針,其成員函數(shù)最終與LCD控制器硬件打交道,這些函數(shù)需要驅(qū)動者根據(jù)LCD控制器的硬件設(shè)置及LCD顯示屏的硬件參數(shù)進(jìn)行設(shè)計。該結(jié)構(gòu)部分成員定義如下:
            c.jpg
            其中,fb_check_var用于檢查可變的屏幕參數(shù),并調(diào)整其為硬件支持的值;fb_set_par根據(jù)屏幕參數(shù)設(shè)置具體讀寫LCD控制器的寄存器以使其進(jìn)入相應(yīng)的工作狀態(tài),fb_setcolreg設(shè)置color寄存器來實現(xiàn)偽顏色表和顏色表的填充。
            (3)struct fb_var_screeninfo
            這是fb_info的成員結(jié)構(gòu)體。它記錄了幀緩沖設(shè)備和指定顯示模式的可修改信息,包括屏幕分辨率、每個像素的位寬、幀延時、行延時等。
            (4)struct fb_fix_screeninfo
            這是fb_info的成員結(jié)構(gòu)體,它描述顯示卡的屬性,并且在運行時不能被修改,例如緩沖區(qū)的首地址、長度等。當(dāng)一種模式被設(shè)定后,內(nèi)存信息由顯示卡硬件給出,內(nèi)存的位置等信息就不可修改。
            MX51將LCD控制器直接嵌入到處理器芯片內(nèi)部,這為關(guān)于顯示功能的擴(kuò)展提供了直接接口。LCD控制器驅(qū)動是設(shè)備驅(qū)動的核心,它是一個標(biāo)準(zhǔn)的framebuffer設(shè)備驅(qū)動。設(shè)計驅(qū)動程序,首要的是配置LCD控制器,設(shè)置幀緩沖區(qū),這在很大程度上要依賴于上述的數(shù)據(jù)結(jié)構(gòu),驅(qū)動設(shè)計需填寫相關(guān)結(jié)構(gòu)體并完成指定的接口函數(shù)。
            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉