MINIGUI學(xué)習(xí)第一季
一,、嵌入式GUI的層次結(jié)構(gòu)圖
CPU:涉及特定體系結(jié)構(gòu)的不同處理器
片內(nèi)設(shè)備:主要包括定時(shí)器,、中斷控制寄存器,、GPIO等
內(nèi)存:RAM主要包括SRAM DRAM,可固化的存儲(chǔ)器主要包括Nor FLASH和Nand Flash
協(xié)議層:主要向用戶層提供API函數(shù),,通過(guò)調(diào)用操作系統(tǒng)實(shí)現(xiàn),,通常情況下數(shù)據(jù)庫(kù)也是屬于該層
當(dāng)然對(duì)于不同的操作系統(tǒng)上圖還是略有差別的,,例如在linux中網(wǎng)絡(luò)協(xié)議和文件系統(tǒng)經(jīng)常集成在操作系統(tǒng)的內(nèi)核中
二,、嵌入式GUI的設(shè)計(jì)原則
由于嵌入式系統(tǒng)的特殊性在嵌入式系統(tǒng)中GUI的設(shè)計(jì)一般應(yīng)遵循以下原則:
1.
可移植性:體現(xiàn)在硬件和操作系統(tǒng)兩個(gè)方面,。在操作系統(tǒng)方面,,由于GUI系統(tǒng)需要建立在含有進(jìn)程通信、多任務(wù)支持機(jī)制的操作系統(tǒng)之上,,但是不同的操作系統(tǒng)提供的機(jī)制是不相同的,,因此為了GUI系統(tǒng)能在不同的操作系統(tǒng)上運(yùn)行,,GUI系統(tǒng)就需要一定的可移植性來(lái)支持不同的操作系統(tǒng),。在硬件方面,,CPU的硬件體系結(jié)構(gòu)、輸入設(shè)備和輸出設(shè)備,,為了適應(yīng)不同的CPU體系結(jié)構(gòu),,GUI系統(tǒng)需要能夠在不同的編譯器上運(yùn)行.
2.
較高的穩(wěn)定性和可靠性:減少崩潰概率,,當(dāng)崩潰時(shí)應(yīng)盡量確保其他的子系統(tǒng)能夠正常的運(yùn)行。
3.
系統(tǒng)開銷少:嵌入式的資源(處理器的頻率,、FLASH的空間和RAM空間)相對(duì)較少,并且系統(tǒng)上還運(yùn)行比GUI更加重要的程序,因此GUI系統(tǒng)應(yīng)該盡可能的少的搶占系統(tǒng)的資源。
4.
較高的可配置性:由于嵌入式系統(tǒng)較多,,因此GUI系統(tǒng)應(yīng)該具有較好的可配置性以適應(yīng)不同的操作系統(tǒng),。可配置性通常包括可裁剪性,,界面特性的配置,,皮膚和主題配置。
對(duì)于嵌入式的GUI系統(tǒng)關(guān)注的重點(diǎn)是上層的接口應(yīng)用和下層的移植兩個(gè)方面,。
三,、minigui簡(jiǎn)單介紹
1.minigui可以運(yùn)行在三種模式:進(jìn)程模式,線程模式,,獨(dú)立模式
Minigui運(yùn)行于線程模式上時(shí)可以在不同的線程中建立多個(gè)窗口,,但所有的窗口在一個(gè)進(jìn)程或者地址空間中運(yùn)行,這種運(yùn)行模式主要用來(lái)支持大多數(shù)傳統(tǒng)意義上的嵌入式系統(tǒng),。
Minigui運(yùn)行于進(jìn)程模式時(shí),,MiniGUI-Processes上的每個(gè)程序都是單獨(dú)的進(jìn)程,每個(gè)進(jìn)程也可以建立多個(gè)窗口,,并且實(shí)現(xiàn)了多進(jìn)程窗口系統(tǒng),。MiniGUI-Processes適合于具有完整UNIX特性的嵌入式操作系統(tǒng),比如嵌入式Linux,。
Minigui運(yùn)行于獨(dú)立模式時(shí),,可以通過(guò)獨(dú)立任務(wù)的方式運(yùn)行,,既不需要多線程也不需要多進(jìn)程的支持,這種運(yùn)行模式適合功能單一的應(yīng)用場(chǎng)合,。
一般情況下,,獨(dú)立模式的適應(yīng)面最廣,可以支持幾乎所有的操作系統(tǒng),,線程模式的適用面次之,,進(jìn)程模式的適應(yīng)面較小,僅適應(yīng)于具有完整UNIX特性的嵌入式操作系統(tǒng),。
2.minigui層次結(jié)構(gòu)圖
GAL:將來(lái)自不同操作系統(tǒng)或者設(shè)備的圖形接口進(jìn)行抽象,,為Minigui上層提供統(tǒng)一的接口。
IAL:將Minigui涉及的所有輸入設(shè)備等抽象出來(lái),,為上層提供一致的接口,。
圖形設(shè)備接口:為上層應(yīng)用程序提供相應(yīng)的接口。
mGi:是Minigui的輸入法組件,。
mGUtils:是一個(gè)Minigui的通用對(duì)話框組件,。
mGPlus:是基于Minigui的一個(gè)圖形組件,在已經(jīng)有的高級(jí)二維繪圖函數(shù)基礎(chǔ)上,,提供更強(qiáng)的圖形功能,,如路徑,顏色漸變,,顏色組合,,抗鋸齒放縮等。
|