chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于嵌入式系統(tǒng)GUI如何實(shí)現(xiàn)DirectF的圖形加速功能的功能應(yīng)用

電子設(shè)計(jì) ? 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:劉小雙,李建平,鄭 ? 2020-09-14 17:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

嵌入式GUI 中需要實(shí)現(xiàn)多圖形功能,包括圖形繪制以及拷貝等。其中的許多功能需要進(jìn)行大量的數(shù)據(jù)傳遞(如圖形拷貝),或者需要進(jìn)行大量的數(shù)值運(yùn)算(如畫樣條曲線)。如果這些功能都由純軟件實(shí)現(xiàn)的話,會(huì)占用大量的CPU時(shí)間并且需要傳遞大量的數(shù)據(jù),從而影響了圖形性能。許多顯卡芯片帶有圖形處理器,能夠從硬件上實(shí)現(xiàn)一部分圖形功能。支持硬件加速的圖形庫可以通過圖形處理器實(shí)現(xiàn)這些圖形功能,從而減輕了CPU的負(fù)擔(dān)并減少了數(shù)據(jù)在總線上的傳輸時(shí)間,提高了圖形性能。

本文就如何實(shí)現(xiàn)DirectFB的圖形加速功能做了詳細(xì)的介紹,并將實(shí)現(xiàn)之后在性能上得到的改進(jìn)與實(shí)現(xiàn)之前做比較,說明DirectFB在優(yōu)化嵌入式系統(tǒng)GUI上的作用。

1 DirectFB體系結(jié)構(gòu)

1.1 DirectFB簡介

DirectFB項(xiàng)目是由德國Convergence公司推動(dòng)的Open source計(jì)劃的一部分,它是專門為滿足嵌入式設(shè)備要求而開發(fā)的小巧、強(qiáng)大、靈活和易于使用的圖形系統(tǒng),并且試圖成為一個(gè)建構(gòu)于Linux Framebuffer Device之上的新圖形標(biāo)準(zhǔn)。它在FrameBuffer的基礎(chǔ)上提供了圖形加速、輸入設(shè)備處理提取、透明窗口和多重顯示層的功能,能夠?qū)η度胧较到y(tǒng) GUI有較好的支持。與那些通用的嵌入式GUI系統(tǒng)相比,它具有非常簡潔、高效的體系結(jié)構(gòu)和硬件圖形加速功能。

1.2 DirectFB體系結(jié)構(gòu)

(1)DirectFB訪問硬件顯卡

DirectFB依賴已有的內(nèi)核接口即幀緩沖設(shè)備(/dev/fb)訪問圖形處理器,也就是說DireetFB需要一個(gè)正在工作的幀緩沖驅(qū)動(dòng)。 Linux內(nèi)核有專門的幀緩沖驅(qū)動(dòng)支持某些圖形處理器。對(duì)于不支持的圖形處理器,內(nèi)核提供VE—SA幀緩沖(這種幀緩沖有一些限制)。DirectFB利用幀緩沖設(shè)備做如下工作:

◆設(shè)置顯卡工作模式(分辨率,顏色深度,時(shí)序)

◆映射顯存

◆改變幀緩沖視口(針對(duì)雙緩沖)

如果某種顯卡被DirecFB支持并且在Linux內(nèi)核中也有這種圖形處理器的幀緩沖驅(qū)動(dòng),DirectFB利用幀緩沖設(shè)備做如下額外的工作:

◆映射顯存IO端口

◆關(guān)閉幀緩沖驅(qū)動(dòng)中自帶的加速功能

針對(duì)具體的圖形操作(例如圖片拷貝),DirectFB加速驅(qū)動(dòng)訪問顯存映射的圖形處理器I/O端口向圖形處理器提交命令。也就是說真正的硬件加速完全是在用戶空間實(shí)現(xiàn)。這樣DirectFB就可以對(duì)它支持的圖形處理器提供最大限度的硬件圖形加速。上層APl支持DirectFB的有:XdirectFB、DirectFBGL、GTK+、DFBTerm、DFBSee、DFBPoint、MythTV、Qt on DirectFB、SDL等。

(2)DirectFB訪問輸入設(shè)備

DirectFB使用Linux內(nèi)核提供的標(biāo)準(zhǔn)設(shè)備接口訪問輸入設(shè)備,而不是直接訪問輸入硬件。具體的結(jié)構(gòu)如圖1所示。

基于嵌入式系統(tǒng)GUI如何實(shí)現(xiàn)DirectF的圖形加速功能的功能應(yīng)用

2 DirectFB加速驅(qū)動(dòng)原理

本節(jié)結(jié)合筆者的硬件平臺(tái)來說明如何實(shí)現(xiàn)DirectFB加速驅(qū)動(dòng),筆者所用的平臺(tái)是MPC8540,圖形處理器是Fujitsu MB86296。要實(shí)現(xiàn)DirectFB加速驅(qū)動(dòng),需要有以下幾個(gè)模塊:系統(tǒng)、圖形加速器、屏幕及圖層。其中系統(tǒng)是指幀緩沖和硬件管理。DirectFB 支持的系統(tǒng)有dev/fb、osx、sdl、xll、/dev/mem等。系統(tǒng)可以在DirectFB應(yīng)用程序配置文件directfbrc中配置。屏幕是指輸出設(shè)備,如LCD。圖層代表獨(dú)立的圖像緩沖區(qū),一般是在顯示的時(shí)候自動(dòng)由硬件融合,硬件一般采用alpha技術(shù)融合。圖層數(shù)量的多少取決于圖形處理器,一般復(fù)雜的圖形處理器都支持多層顯示。一層內(nèi)容的改變不影響其他層的內(nèi)容。

DirectFB驅(qū)動(dòng)的幾點(diǎn)基本要素是:

①必須賦給驅(qū)動(dòng)一個(gè)唯一的名字并且用如下宏實(shí)現(xiàn):DFB_GRAPHICS_DRIVER(MB86296)。

②上面的宏需要定義6個(gè)函數(shù)供DirectFB Core使用,即初始化/關(guān)閉驅(qū)動(dòng)、初始化/關(guān)閉加速重獲驅(qū)動(dòng)元數(shù)據(jù)。

③在驅(qū)動(dòng)中需要實(shí)現(xiàn)的函數(shù)有以下6個(gè)。

a)static int dnver_probe(GraphicsDevice*device);

如果系統(tǒng)支持某種硬件此函數(shù)應(yīng)該返回非零值,它用DirectFB Core來探測哪個(gè)驅(qū)動(dòng)支持系統(tǒng)硬件。

b)static void driver_get_info(GraphicsDevice *device, GraphicsDriverInfo *info);

這些函數(shù)用來設(shè)驅(qū)動(dòng)信息。

c)static DFBResult driver_init_driver (GraphicsDevice *device, GraphicsDeviceFuncs *funcs, void *driver_data, void *device_data, CoreDFB *core);

初始化驅(qū)動(dòng)。在成功獲得所有需要的資源后驅(qū)動(dòng)應(yīng)該注冊(cè)屏幕和層。同時(shí)也需要通過funcs返回硬件加速函數(shù)列表。實(shí)現(xiàn)方式如下所示。

初始化硬件。通過GraphicsDevicelnfo*device_info設(shè)置由硬件支持的加速能力,例如Blit/Draw。具體實(shí)現(xiàn)如下:

實(shí)現(xiàn)關(guān)閉驅(qū)動(dòng)時(shí)需要做的工作。

3 加速性能測試

通過筆者編寫的驅(qū)動(dòng)程序和DirectFB官方加速測試程序df_dok,可以看出加速與否對(duì)應(yīng)用程序運(yùn)行速度的影響。下面是沒有實(shí)現(xiàn)圖形加速能力的測試結(jié)果。

由上面測試結(jié)果比較可以看出,實(shí)現(xiàn)了加速能力后的DirectFB可以大大提高圖形處理能力。

結(jié)語

通過筆者在某雷達(dá)系統(tǒng)上的測試可以看出,實(shí)現(xiàn)圖形加速后的GUI界面響應(yīng)較快,畫面流暢,與加速前相比圖形性能有了顯著的提高。隨著 DirectFB在嵌入式系統(tǒng),如數(shù)控手機(jī)、嵌入式瀏覽器、PDA、雷達(dá)等領(lǐng)域的應(yīng)用越來越廣泛,基于DirectFB的圖形加速將使得嵌入式系統(tǒng) GUI性能得到極大提高。加速驅(qū)動(dòng)程序在DirectFB圖形庫中的實(shí)現(xiàn),充分利用了圖形加速器的加速功能,減輕了CPU的數(shù)據(jù)處理負(fù)擔(dān),大大提高了嵌入式系統(tǒng)的GUI性能。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235347
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19676

    瀏覽量

    317696
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153778
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    七大嵌入式GUI盤點(diǎn)

    嵌入式圖形用戶界面(GUI)是一種為嵌入式系統(tǒng)設(shè)計(jì)的用戶界面,它可以讓用戶通過圖形化的方式與設(shè)備
    發(fā)表于 09-02 10:58

    嵌入式Linux圖形系統(tǒng)(GUI)快速參考手冊(cè)

    --一個(gè)雙重協(xié)議的(GPL或者商業(yè)協(xié)議)的項(xiàng)目,建立一個(gè)小型的窗口系統(tǒng),支持嵌入式系統(tǒng)和設(shè)備.它提供相應(yīng)Win32API的窗口管理功能.Fluffy Spider: FancyPan
    發(fā)表于 02-14 13:40

    嵌入式多任務(wù)GUI實(shí)現(xiàn)什么功能?

    嵌入式GUI(Graphic Uset Interface)系統(tǒng)就是在嵌入式系統(tǒng)中為特定的硬件設(shè)備或環(huán)境而設(shè)汁的
    發(fā)表于 09-24 06:23

    一種嵌入式GUI軟件結(jié)構(gòu)實(shí)現(xiàn)方案

    綜合比較了嵌入式GUI的幾種實(shí)現(xiàn)方式,結(jié)合嵌入式系統(tǒng)的特點(diǎn),研究了嵌入式
    發(fā)表于 02-21 11:36 ?24次下載

    嵌入式系統(tǒng)圖形用戶界面(GUI)的設(shè)計(jì)與研究Design a

    本文提出一種通用的嵌入式系統(tǒng)圖形用戶界面(GUI)的設(shè)計(jì)思想和體系結(jié)構(gòu)。其實(shí)現(xiàn)方法是以消息驅(qū)動(dòng)機(jī)制為核心,采取窗口間的層疊順序管理和相互剪切
    發(fā)表于 05-26 16:33 ?39次下載

    嵌入式單窗口GUI系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    圖形用戶界面(GUI)系統(tǒng)和操作系統(tǒng)(OS)進(jìn)行類比,提出了一種新的嵌入式GUI
    發(fā)表于 07-30 10:00 ?21次下載

    基于Linux的輕量級(jí)嵌入式GUI系統(tǒng)實(shí)現(xiàn)

    本文介紹了嵌入式圖形用戶界面(GUI)的特點(diǎn)、發(fā)展概況以及嵌入式圖形用戶界的實(shí)現(xiàn)方法。針對(duì)開發(fā)自
    發(fā)表于 08-31 11:52 ?23次下載

    嵌入式系統(tǒng)開發(fā)之ucos在各種硬件上的GUI實(shí)現(xiàn)

    嵌入式系統(tǒng)開發(fā)之ucos在各種硬件上的GUI實(shí)現(xiàn).rar 嵌入式用戶圖形接口uC/
    發(fā)表于 03-15 14:10 ?79次下載

    嵌入式圖形系統(tǒng)μc/GUI的移植和開發(fā)

    嵌入式圖形系統(tǒng)μc/GUI的移植和開發(fā) 摘要  嵌入式系統(tǒng)的開發(fā)已成為新的行業(yè)熱點(diǎn),而
    發(fā)表于 12-25 17:55 ?1269次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>圖形</b><b class='flag-5'>系統(tǒng)</b>μc/<b class='flag-5'>GUI</b>的移植和開發(fā)

    基于嵌入式Qt的樓宇對(duì)講系統(tǒng)GUI平臺(tái)設(shè)計(jì)

    提出了嵌入式樓宇對(duì)講的GUI實(shí)現(xiàn)和流程。文章還對(duì)嵌入式Linux的移植做了論述,對(duì)樓宇對(duì)講系統(tǒng)涉及底層事件和軟件構(gòu)架進(jìn)行分析,完成了樓宇對(duì)講
    發(fā)表于 01-13 15:33 ?95次下載
    基于<b class='flag-5'>嵌入式</b>Qt的樓宇對(duì)講<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>GUI</b>平臺(tái)設(shè)計(jì)

    嵌入式圖形用戶界面系統(tǒng)設(shè)計(jì)分析

    為了滿足嵌入式系統(tǒng)的界面設(shè)計(jì)需求,給出了一種圖形用戶界面系統(tǒng)SKY-GUI的設(shè)計(jì)思路和其在嵌入式
    發(fā)表于 10-16 15:24 ?1次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>圖形</b>用戶界面<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)分析

    Qt圖形編程基礎(chǔ)之嵌入式GUI

    分享到:標(biāo)簽:Qt圖形編程 嵌入式GUI Linux 操作系統(tǒng) 12.1 嵌入式GUI簡介 目前
    發(fā)表于 10-18 14:45 ?0次下載

    ARM嵌入式系統(tǒng)GUI開發(fā)研究

    GUI發(fā)展至今,已經(jīng)有了許多的種類,具有了強(qiáng)大的功能。嵌入式GUI已經(jīng)成為一個(gè)成功的嵌入式系統(tǒng)
    發(fā)表于 12-04 14:19 ?638次閱讀

    探究Microwindows的嵌入式GUI設(shè)計(jì)

    嵌入式圖形用戶界面( Embedded GUI) 是嵌入式計(jì)算機(jī)系統(tǒng)的核心技術(shù)之一。本文首先闡述Embedded GUI的應(yīng)用現(xiàn)狀,指出Mi
    的頭像 發(fā)表于 03-24 10:26 ?2448次閱讀
    探究Microwindows的<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>設(shè)計(jì)

    嵌入式Linux常用GUI系統(tǒng)

    嵌入式Linux常用GUI系統(tǒng)【整理】嵌入式Linux中常用的GUI圖形用戶界面)
    發(fā)表于 11-01 16:31 ?4次下載
    <b class='flag-5'>嵌入式</b>Linux常用<b class='flag-5'>GUI</b><b class='flag-5'>系統(tǒng)</b>