資源描述:
《基于arm的嵌入式linux系統(tǒng)中g(shù)ui的研究和實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、2006年10月沈陽理工大學(xué)學(xué)報(bào)Vol.25No.5第25卷第5期TRANSACTIONSOFSHENYANGLIGONGUNIVERSITYOct.2006文章編號(hào):1003-1251(2006)05-0023-04基于ARM的嵌入式LINUX系統(tǒng)中GUI的研究和實(shí)現(xiàn)張興財(cái),楊康,崔向(沈陽理工大學(xué)信息科學(xué)與工程分院,遼寧沈陽110168)摘要:介紹了嵌入式系統(tǒng)和嵌入式系統(tǒng)中的GUI以及嵌入式GUI的底層實(shí)現(xiàn),設(shè)計(jì)結(jié)構(gòu)和使用上的優(yōu)缺點(diǎn)以及嵌入式GUI的總體設(shè)計(jì)思想,QT的程序設(shè)計(jì).關(guān)鍵詞:嵌入式;GUI;程序設(shè)計(jì)中圖分類號(hào):TP316文獻(xiàn)標(biāo)識(shí)碼:A嵌入式GUI為嵌入式系統(tǒng)
2、提供了一種應(yīng)用于對(duì)多字符集、多線程等方面也做了相應(yīng)的改進(jìn),使特殊場(chǎng)合的人機(jī)交互接口.在當(dāng)前的幾種主流其更加有效地被利用.GUI系統(tǒng)中,MiniGUI的策略是建立在比較成熟的1基于嵌入式Linux的GUI系統(tǒng)底圖形引擎之上,開發(fā)的重點(diǎn)在于窗口系統(tǒng)如圖形層實(shí)現(xiàn)基礎(chǔ)接口,它盡量保持與Win32的兼容,在WinCE應(yīng)[1~3]用的任何場(chǎng)合,也可以使用MiniGUI;MicroW-一個(gè)能夠移植到多種硬件平臺(tái)上的嵌入式indows目前的開發(fā)重點(diǎn)則在底層的圖形引擎,窗GUI系統(tǒng),應(yīng)該至少抽象出兩類設(shè)備:基于圖形顯[1]口系統(tǒng)和圖形接口方面的功能還比較欠缺;Qt/示設(shè)備的圖形抽象層GAL和
3、基于輸入設(shè)備的輸Embedded是一個(gè)多平臺(tái)的C++圖形用戶界面應(yīng)入抽象層IAL.GAL層實(shí)現(xiàn)系統(tǒng)對(duì)具體的硬件顯用程序框架,它注重于能給用戶提供精美的圖形示設(shè)備的操作,很大程度上隱藏各種不同硬件的用戶界面所需要的所有元素,而且它是基于一種技術(shù)實(shí)現(xiàn)細(xì)節(jié),為應(yīng)用程序開發(fā)人員提供統(tǒng)一的面向?qū)ο蟮乃枷?所以用戶對(duì)其對(duì)象的擴(kuò)展是相圖形編程接口.IAL層則需要實(shí)現(xiàn)對(duì)于各類不同[4,5][8]當(dāng)容易的,并且它還支持真正的組件編程;嵌輸入設(shè)備的控制操作,提供統(tǒng)一的調(diào)用接口.入式GUI要求簡(jiǎn)單、直觀、可靠、占用資源小且反GAL層與IAL層的設(shè)計(jì)概念,可以極大程度地提應(yīng)快速,以適應(yīng)系統(tǒng)硬件資源
4、有限的條件.但從技高嵌入式GUI的可移植性,嵌入式GUI的實(shí)現(xiàn)結(jié)術(shù)角度講,現(xiàn)有的GUI系統(tǒng)都存在一定的缺陷,構(gòu)如圖1所示.MicroWindows平臺(tái)原來是面向PC環(huán)境的,對(duì)于系統(tǒng)資源的要求較高,盡管經(jīng)剪裁后可以適應(yīng)對(duì)于靜態(tài)空間的要求,但對(duì)動(dòng)態(tài)空間的要求依然很難,[6]其功能受到極大削弱;Qt/Embedded平臺(tái)盡管較為成熟,但真正在商品化產(chǎn)品中使用時(shí)會(huì)面臨圖1嵌入式GUI的實(shí)現(xiàn)結(jié)構(gòu)很高的授權(quán)費(fèi)用,無形中增加了產(chǎn)品的成本,使得Linux有開放的源代碼、高效穩(wěn)定的內(nèi)核、良[7]產(chǎn)品在市場(chǎng)競(jìng)爭(zhēng)中面臨困境;MiniGUI平臺(tái)因其好的開發(fā)環(huán)境以及支持多種硬件平臺(tái)的特點(diǎn),而[3]實(shí)
5、現(xiàn)策略問題,使得二次開發(fā)受到限制.本文對(duì)且由于Linux的可配置性和可模塊化,一個(gè)LinuxQT的面向?qū)ο蟮奶攸c(diǎn)進(jìn)行了一定的改進(jìn),并且針內(nèi)核經(jīng)過培植和裁減可以只占用幾百k左右的存儲(chǔ)空間,使其在嵌入式系統(tǒng)中也得到廣泛應(yīng)用.收稿日期:2005-11-16作者簡(jiǎn)介:張興財(cái)(1981)),男,山東沂水人,碩士研究生1#24#沈陽理工大學(xué)學(xué)報(bào)2006年計(jì)成對(duì)象,組件對(duì)象通過消息通信,嵌入式GUI在2自主開發(fā)GUI系統(tǒng)消息驅(qū)動(dòng)下形成整體,構(gòu)成系統(tǒng).在分析和設(shè)計(jì)的過程中,采用OOA/OOD進(jìn)行分析設(shè)計(jì),形成一個(gè)嵌入式GUI的總體設(shè)計(jì)思想是:所有操作由層次清楚、移植性好、易于擴(kuò)展和重定義的
6、系統(tǒng)結(jié)對(duì)象和消息驅(qū)動(dòng),通過對(duì)現(xiàn)有GUI的分析,對(duì)多種構(gòu).嵌入式GUI的整體框架和體系結(jié)構(gòu)如圖2所嵌入式應(yīng)用系統(tǒng)對(duì)GUI的要求進(jìn)行總結(jié),抽象出示.各種組件類.嵌入式GUI所有組件和數(shù)據(jù)都被設(shè)圖2嵌入式GUI的整體框架和體系結(jié)構(gòu)圖系統(tǒng)中的所有消息節(jié)點(diǎn)構(gòu)成空閑隊(duì)列和消息路由到事件發(fā)生時(shí)鼠標(biāo)所在位置的最底層對(duì)象;隊(duì)列,消息隊(duì)列存放當(dāng)前EGUI系統(tǒng)中沒有處理的③對(duì)于鍵盤消息,如果系統(tǒng)有當(dāng)前輸入焦點(diǎn)對(duì)消息.消息隊(duì)列由消息管理器進(jìn)行操作和管理.圖象,就把消息路由到該對(duì)象,否則丟棄該消息;④2中的輸入設(shè)備抽象層、操作系統(tǒng)抽象層和組件對(duì)對(duì)于非鼠標(biāo)、鍵盤的系統(tǒng)消息,將被路由到桌面對(duì)象集合是消息
7、發(fā)生器,它們都會(huì)產(chǎn)生EGUI消息,象管理器的第一個(gè)子對(duì)象;⑤對(duì)于用戶定義的消調(diào)用消息管理器的操作將生成的消息放入到消息息,路由到iData指定的對(duì)象.組件對(duì)象處理消息隊(duì)列中.消息管理器用于管理消息隊(duì)列和空閑隊(duì)時(shí),如果處理操作要改變屏幕數(shù)據(jù),組件對(duì)象調(diào)用列,當(dāng)有消息產(chǎn)生時(shí),消息管理器執(zhí)行消息入隊(duì)繪圖操作Draw()重繪自己的外觀.整個(gè)系統(tǒng)就是PUSH()操作,處理過程為:先從空閑隊(duì)列中摘下這樣不斷地產(chǎn)生消息、分發(fā)消息、處理消息,形成一個(gè)節(jié)點(diǎn),形成一個(gè)消息節(jié)點(diǎn),將它掛到消息隊(duì)列一個(gè)無限循環(huán),驅(qū)動(dòng)EGUI運(yùn)行.的隊(duì)尾.桌