<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于SEP4O2O的Linux frame buffer驅動(dòng)設計

基于SEP4O2O的Linux frame buffer驅動(dòng)設計

作者: 時(shí)間:2009-10-23 來(lái)源:網(wǎng)絡(luò ) 收藏

完成可變參數和固定參數的填充之后,要為本驅動(dòng)申請中斷資源,具體函數為requestirq(irq,sep4020fb_irq,SA INTERRUPT,pdev一>name,info),irq為請求的中斷號,sep4020fb_irq為中斷處理服務(wù)子程序,SA_INTERRUPT表示為一個(gè)快速中斷處理,在執行中斷的過(guò)程中禁止所有在當前處理器上的其他中斷。申請中斷完畢之后,就要完成本驅動(dòng)關(guān)鍵步驟,調用sep4020fb_map_video_memory()函數申請顯示緩沖區。在該函數中,首先調用PAGE_ALIGN()函數對齊申請的緩沖區的大小,使即將申請的顯示緩沖區大小為頁(yè)的整數倍;然后調用函數dma_all oc_writecombine(fbi->dev,fbi一>map_size,&fbi一>map_dma,GFP_KERNEL), 分配一塊寫(xiě)合并的內存區域作為幀緩存,函數返回值為申請的幀緩存的起始位置的虛擬地址,fbi一>map_dma代表的是該位置的物理地址,fbi一>map_si ze為此內存區的大小。
完成上面的工作之后,驅動(dòng)程序在就有了一塊內存區域作為幀緩沖,向此區域寫(xiě)入數據就能顯示在液晶屏上。后面還要調用sep4020fb_init_registers(info)函數初始化L C D控制器的寄存器;然后調用sep4020fb_check_var(&fbinfo一>var,fbinfo)檢查可變參數,最后調用register_(fbinfo)注冊幀緩沖設備。
3.3 提供給應用程序的接口
本驅動(dòng)設計定義了如下幾個(gè)接口供應用程序調用:fb_ioctl,fb_blank,fb_fillrect.
部分代碼如下:

本文引用地址:http://dyxdggzs.com/article/202630.htm


sep4020_blank函數主要實(shí)現了將液晶屏清屏的功能。
sep4020fb_fillrect函數實(shí)現了填充液晶屏一塊矩形區域的功能。
sep4020fb_ioctl函數則為上層應用提供了更多的功能,部分可供上層調用的命令如下:
FBIOGET_VSCREENINFO表示用戶(hù)獲取屏幕的可變參數;
FBIOPUT_VSCREENINFO表示用戶(hù)設置可變的屏幕參數;
FBIOGET_FSCREENINFO表示用戶(hù)獲得屏幕的固定參數;
FBIOBLANK表示調用sep4020fb_blank函數清空液晶屏;
FBIOPUTCMAP表示設置屏幕的顏色表;
FBIOGETCMAP表示獲得顏色表。
3.4 用戶(hù)空間對幀緩沖設備進(jìn)行訪(fǎng)問(wèn)
驅動(dòng)程序經(jīng)過(guò)編譯并加載為模塊后,成為/dev/fb0設備,在應用程序中,操作/dev/fb0一般遵循如下步驟:1)打開(kāi)/dev/fb0設備文件;2)調用ioctl()操作取得屏幕的參數,如屏幕分辨率和每個(gè)像素所占的比特數,進(jìn)而計算出顯示緩沖區的大??;3)將屏幕緩沖區映射到用戶(hù)空間;4)映射之后就可以向緩沖區寫(xiě)入或者讀出數據,進(jìn)行繪圖了。


4 測試與結論
根據前面論述的步驟向屏幕緩沖區寫(xiě)入數據,將每個(gè)像素的值設為0xF0F0,在屏幕上顯示如下圖像:

測試結果顯示,在本課題驅動(dòng)模塊的支持下,可以向屏幕緩沖區寫(xiě)入數據并正確地在屏幕上顯示出來(lái),工作完全正常。本文所提出的設計方案已經(jīng)應用在本單位某產(chǎn)品上。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: SEP4O2O buffer Linux frame

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>