新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于嵌入式Linux圖形用戶接口的實(shí)現(xiàn)

一種基于嵌入式Linux圖形用戶接口的實(shí)現(xiàn)

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

2.1.3 GtkFB的工作原理

  DirectFB訪問(wèn)硬件設(shè)備依賴于操作系統(tǒng)提供的內(nèi)核,即幀緩沖設(shè)備(FrameBuffer)。FrameBuffer實(shí)際上是用一塊硬件來(lái)做顯卡和軟件之間的橋梁,的內(nèi)核將其開(kāi)放出來(lái),使的程序可以通過(guò)塊內(nèi)存來(lái)存取顯卡。例如設(shè)定顯示分辨率和色彩數(shù)、存取顯示內(nèi)存區(qū)等。不同的需要提供針對(duì)不同顯示硬件FrameBuffer的驅(qū)動(dòng)程序,這就是說(shuō)DirectFB需要運(yùn)行于FramBuffer之上,然而內(nèi)核提供了常見(jiàn)芯片的FrameBuffer驅(qū)動(dòng)。

  當(dāng)一個(gè)應(yīng)用程序連接到GtkFB時(shí)會(huì)調(diào)用gtk_init(),如圖3所示,此時(shí)GtkFB 啟動(dòng)Linux的Framebiffer,設(shè)定分辨率和色彩數(shù),接下來(lái)打開(kāi)鍵盤和鼠標(biāo)等外設(shè)(PDA打開(kāi)按鍵和觸控屏幕).然后到特定目錄去讀取字型,最后對(duì)窗口和事件管理作初始化操作。GtkFB可以支持8、16、24、32bpp的framebuffer。

Gtk通過(guò)DirectFB訪問(wèn)FrameBufer設(shè)備和圖形設(shè)備

  為了執(zhí)行一個(gè)特定的操作,DirectFB芯片驅(qū)動(dòng)程序?qū)⒃L問(wèn)設(shè)備內(nèi)存映射的I/O端口,并且把命令傳遞到圖形設(shè)備卡的加速引擎。實(shí)際的硬件加速是完全在空間內(nèi)完成的。

  2.2 SWT+GtkFB圖形系統(tǒng)的優(yōu)點(diǎn)

  2.2.1 內(nèi)存消耗小、運(yùn)行速度快特別適合產(chǎn)品

  由于GtkFB直接運(yùn)行在FrameBufer之上,跳過(guò)X系統(tǒng),這樣省下了X Server這一部分資源,這使得在內(nèi)存消耗、運(yùn)行速度上得到顯著提高。另外采用的JNI技術(shù)使得程序運(yùn)行速度、事件的響應(yīng)有較高的提高,能滿足時(shí)間要求較為嚴(yán)格的實(shí)時(shí)應(yīng)用場(chǎng)合。

  2.2.2 系統(tǒng)穩(wěn)定性好

  SWT 的穩(wěn)定性,關(guān)鍵是源于SWT 的設(shè)計(jì)理念。SWT最大化了操作系統(tǒng)的圖形構(gòu)件API,就是說(shuō)只要操作系統(tǒng)提供了相應(yīng)圖形的構(gòu)件,那么SWT只是應(yīng)用JNI技術(shù)調(diào)用它們,只有那些操作系統(tǒng)中不提供的構(gòu)件,SWT才自己去做一個(gè)模擬的??梢钥闯鯯WT性能上的穩(wěn)定很大程度上取決于相應(yīng)操作系統(tǒng)圖形構(gòu)件的穩(wěn)定性。

  2.2.3 易于移植和共享

  SWT的API和桌面版完全相同,因而代碼可以很容易地在桌面和設(shè)備之間移植與共享。

  2.2.4 小巧可配置

  SWT采用了LGPL授權(quán)方式,可以自由地甚至是鼓勵(lì)修改源代碼使其更加滿足用戶的需求,很容易根據(jù)用戶的需求來(lái)裁減特定的SWT+GtkFB,依據(jù)LGPL許可證,用戶需要公布修改的源代碼,但用戶不必公布自給應(yīng)用程序的源代碼。

  2.2.5 易于開(kāi)發(fā)

  SWT是Java語(yǔ)言開(kāi)發(fā)的,具有平臺(tái)獨(dú)立性、面向?qū)ο?、可移植、安全等Java語(yǔ)言所擁有特點(diǎn)。用戶可以很容易的SWT提供的Widget(構(gòu)件)開(kāi)發(fā)出滿足自己需要的Widget,而且很容易地使用這些Widget去構(gòu)建應(yīng)用程序。

  3 SWT+GtkFB圖形系統(tǒng)的

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

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

關(guān)閉