說明hifb開發(fā)指南_第1頁
說明hifb開發(fā)指南_第2頁
說明hifb開發(fā)指南_第3頁
說明hifb開發(fā)指南_第4頁
說明hifb開發(fā)指南_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

非經(jīng)本公司,任何單位和個人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何形式。 您的產(chǎn)品、服務(wù)或特性等應(yīng)受海思公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn) LinuxFramebufferLinuxFramebuffer基本功能的基礎(chǔ)上,還擴(kuò)展了一些圖形層控制功能,如層間Alpha、設(shè)置原點(diǎn)等。本文檔主要介紹HiFB模塊加載和第一次如何開發(fā)應(yīng)用。

Hi3516AHi3516D01(2014-12-00B01(2014-09-目前 HiFB簡 HiFB與LinuxFramebuffer對 圖1-1HiFB體系結(jié) 圖1-20buffer示意 圖1-31buffer示意 圖1-42buffer示意 圖1-5壓縮buffer示意 圖3-1HiFB的開發(fā)流 HiFB

LinuxFramebufferLinuxFramebuffer的基礎(chǔ)上增加層間colorkeycolorkeymaskAlpha、原點(diǎn)偏移等擴(kuò)展功能。HiFBLinuxFramebufferLinuxFramebuffer是一個子設(shè)備號對應(yīng)一個顯卡,HiFB則是一個子設(shè)備號對應(yīng)一個疊加圖形層,HiFB可以管理多個疊加圖形層,具體個數(shù)和相關(guān)。 形層與輸出設(shè)備的關(guān)系如表1-1所示。FB上

LinuxFramebuffer提供同步時序、掃描方式、同步信號組織等控制方式(需要硬件支持,將物理顯存的內(nèi)容顯示在不同的輸出設(shè)備(PC顯示器、TV、LCD等)上。目前HiFB不支持同步時序、掃描方式、同步信號組織等控制方式。bufferHiFBFB的擴(kuò)展模式。在對系統(tǒng)性能、0buffer(快,但是用戶會看到圖形的繪制過程。示意如圖1-2所示。1buffer(需求的一種折中考慮。但是會有鋸齒。示意如圖1-3所示。2效果最好。示意如圖1-4所示。包含以下:?? 上文提到的三個分辨率:畫布分辨率(即用戶繪制buffer的分辯率、顯存分辨率、屏幕顯示分辨率。繪圖內(nèi)容從用戶繪制buffer到顯示buffer的過程支持縮放,也支持抗閃爍;而從顯示

內(nèi)存?zhèn)蓽y功能,即圖形層對顯示buffer數(shù)據(jù)是否發(fā)生變化進(jìn)行偵測。該功能只能0到時,壓縮功能被啟動,對壓縮數(shù)據(jù)進(jìn)行更新,避免用戶進(jìn)行顯示的refresh操作。

LinuxFramebuffer驅(qū)動(versa)不支持在運(yùn)行期間更改分辨率、顏色深度、時參數(shù)將相應(yīng)選項(xiàng)傳遞給LinuxFramebuffer??梢栽趦?nèi)核加載器中配置內(nèi)核啟動參數(shù)。HiFB驅(qū)動在加載時只能設(shè)置物理顯存的大小,不允許設(shè)置其它選項(xiàng)。如果沒有加載,可以先用“modprobefb”加載fb.ko,然后再加載hifb.ko。HiFBHiFB可使用參數(shù)其中,vramn_size:xxxn配置xxxKVramn_size*1024>=xres_virtual*yres_virtual*vramn_size*1024>=disywidth*disyHeight*bpp*vram0_size1280*720*4*27200Kvramn_size必須是PAGE_SIZE(4Kbyte)HiFB驅(qū)動強(qiáng)制將其設(shè)為PAGE_SIZE的參數(shù)存將在無名的mmz上分配。

(1)哪個mmz上分配,并且為每個疊加圖形層分配適當(dāng)?shù)娘@存。HiFB驅(qū)動的模塊文件為hifb.koARGB15550720x576x2=829440insmodhifb.ko="hifb:vram0_size:810,vram2_size:0"。doublebuffer的方式,則需要乘以2,即:720x576ARGB1555,則兩個疊加層需要的最小顯存都為720x576x2=829440=810K,配置參數(shù)如下:

HiFB3-1步驟2.調(diào)用ioctl函數(shù)設(shè)置HiFB的象素格式以及屏幕等參數(shù)(詳細(xì)內(nèi)容請參見《HiFBAPI參考》)。3.ioctlHiFBioctl函數(shù)也5.HiFB提供的雙緩沖頁翻轉(zhuǎn)等HiFB的可變信息fb_var_screeninfoHiFB的固定信息本實(shí)例利用PAN_DIS #include#include<sys/mman.h>#include<linux/fb.h>#include"hifb.h"#define #define #defineIMAGE_SIZE #defineIMAGE_NUM #define staticstructfb_bitfieldg_r16={10,5,staticstructfb_bitfieldg_g16={5,5,staticstructfb_bitfieldg_b16={0,5,staticstructfb_bitfieldg_a16={15,1,int{intfd;inti;structfb_fix_screeninfofix;structfb_var_screeninfovar;unsignedchar*pShowScreen;unsignedchar*pHideScreen;HIFB_POINT_SstPoint={40,112};FILEVO_PUB_ATTR_SstPubAttr={0};charimage_name[128];/*0.openVOdevice0/*……initializetheattributesforstPubAttr*/HI_MPI_VO_SetPubAttr(0,&stPubAttr);/*1.openFramebufferdeviceoverlay0*/fd=open("/dev/fb0",O_RDWR);if(fd<{printf("openfb0failed!\n");return-1;}/*2.setthescreenoriginalif(ioctl(fd,FBIOPUT_SCREEN_ORIGIN_HIFB,&stPoint)<{printf("setscreenoriginalshowpositionfailed!\n");return-1;}/*3.getthevariablescreenif(ioctl(fd,FBIOGET_VSCREENINFO,&var)<{printf("Getvariablescreeninfofailed!\n");return-}/*4.modifythevariablescreenthescreensize:thevirtualscreensize:IMAGE_WIDTH*(IMAGE_HEIGHT*2)thepixelformat:ARGB1555var.xres=var.xres_virtual=IMAGE_WIDTH;var.yres=IMAGE_HEIGHT;var.yres_virtual=var.transp=g_a16;var.red=g_r16;var.green=g_g16;var.blue=g_b16;var.bits_per_pixel=16;/*5.setthevariableif(ioctl(fd,FBIOPUT_VSCREENINFO,&var)<{printf("Putvariablescreeninfofailed!\n");return-}/*6.getthefixscreenif(ioctl(fd,FBIOGET_FSCREENINFO,&fix)<{printf("Getfixscreeninfofailed!\n");return-}/*7.mapthephysical memoryforuseruse*/pShowScreen=mmap(NULL,fix.smem_len,PROT_READ|PROT_WRITE,MAP_SHARED,fd,pHideScreen=pShowScreen+IMAGE_SIZE;memset(pShowScreen,0,IMAGE_SIZE);/*8.loadthebitmapsfromfiletohidescreenandsetpandis ythehidescreen*/for(i=0;i<IMAGE_NUM;{sprintf(image_name,IMAGE_PATH,i);fp=fopen(image_name,"rb");if(NULL==fp){printf("Load%sfailed!\n",image_name);return-}frea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論