基于Qt/Embedded的微波信號(hào)發(fā)生器軟件設(shè)計(jì)
發(fā)布時(shí)間:2007/8/30 0:00:00 訪問次數(shù):953
于 曉,王家禮,宋營(yíng)坤,谷懷棟,余 濤
1 引 言
嵌入式系統(tǒng)的出現(xiàn)至今已有30多年的歷史,嵌入式技術(shù)也經(jīng)歷了三個(gè)發(fā)展階段。早期的嵌入式系統(tǒng)因資源極其有限,只有字符界面或者簡(jiǎn)單的圖形界面。隨著技術(shù)的發(fā)展,硬件成本的大幅下降,嵌入式系統(tǒng)應(yīng)用要求越來越高,應(yīng)用范圍越來越廣。這樣字符界面和簡(jiǎn)單的圖形界面不再能滿足一些嵌入式系統(tǒng)的要求。嵌入式系統(tǒng)對(duì)圖形用戶界面(GUI)的需求越來越迫切。
不同于在個(gè)人PC上的圖形用戶界面,對(duì)嵌入式系統(tǒng)上的GUI包括:輕型、占用資源少,可配置,高性能,高可靠性。
2 幾種成熟的基于Linux的嵌入式GUI
2.1 MicroWindows/NanoX
MicroWindows是一個(gè)開放源代碼的項(xiàng)目,起源于NanoGUI項(xiàng)目。他支持兩種應(yīng)用程序編程接口,Win32API的實(shí)現(xiàn)叫MicroWindows,類似Xlib API的實(shí)現(xiàn)叫Nano-X。
MicroWindows是一個(gè)基于典型客戶/服務(wù)器體系結(jié)構(gòu)的GUI系統(tǒng),基本分成3層。最底層是面向圖形輸出和鍵盤、鼠標(biāo)或觸摸屏的驅(qū)動(dòng)程序;中間層提供底層硬件的抽象接口,并進(jìn)行窗口管理,實(shí)際上是一個(gè)可移植的窗口引擎。他實(shí)現(xiàn)了畫線、區(qū)域填充、多邊形、剪切和多種顏色模式,這些實(shí)現(xiàn)是參考Xfree86而設(shè)計(jì)的;最高層分別提供兼容于Xwindow和Windows CE(Win 32子集)的API。
該項(xiàng)目的主要特色在于提供了類似X的客戶/服務(wù)器體系結(jié)構(gòu)和相對(duì)完善的圖形功能,包括一些高級(jí)功能。比如Alpha混合、三維支持、TrueType字體支持等。該項(xiàng)目目前由美國(guó)Century Software公司主持開發(fā)。
2.2 MiniGUI
MiniGUI是原清華大學(xué)教師魏永明主持的一個(gè)自由軟件項(xiàng)目,其目標(biāo)是基于Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級(jí)的圖形用戶界面支持系統(tǒng)。MiniGUI基于SVGALib和LinuXThread庫,采用簡(jiǎn)化的類Windows風(fēng)格的圖形用戶界面,功能限制期不能用于更大的嵌入式系統(tǒng)。
2.3 Qt/Embedded
Qt/Embedded是跨平臺(tái)C++圖形用戶界面工具包,因其面向?qū)ο、跨平臺(tái)、界面設(shè)計(jì)更美觀而得到廣泛應(yīng)用;赒t的X Window程序可以方便地移植到Qt/Embedded版本上。因此,自從Qt/Embedded以GPL條款發(fā)布以來,就有大量的嵌入式開發(fā)商轉(zhuǎn)到Qt/Embedded系統(tǒng)上。
3 Qt/Embedded框架結(jié)構(gòu)及編程關(guān)健技術(shù)
3.1 Qt/Embedded的開發(fā)環(huán)境及工具
使用Troll tech公司的X開發(fā)平臺(tái)自由軟件的自由版:Qt/Embedded 3.3.3。下載RPM包并安裝。Qt支持多種處理器,根據(jù)所選用的處理器進(jìn)行適當(dāng)?shù)呐渲煤途幾g,即可得到如下創(chuàng)建應(yīng)用程序所需的軟件包和工具:
(1) Qt/Embedded函數(shù)庫。
(2) 虛擬幀緩沖qvfb(virtual frame buffer):在X窗口用來運(yùn)行和測(cè)試Qt/Embedded應(yīng)用程序的系統(tǒng)程序。有了他,就可以不必在控制臺(tái)和X11之間來回切換了。
(3) designer:Qt下用于設(shè)計(jì)窗口組件的工具。
(4) tmake:Makefile文件的自動(dòng)生成器。
(5) moc:用于Qt C++擴(kuò)展的meta-object編譯器。
(6) uic:從XML文件生成代碼的用戶界面編譯器。
(7) 其他工具,再加上g++,就可以進(jìn)行基于Qt/Em-bedded的應(yīng)用程序開發(fā)、編譯和調(diào)試了。
3.2 Qt/Embedded的框架結(jié)構(gòu)
圖1是Qt/Embedded的框架結(jié)構(gòu)。相對(duì)于Linux上Qt的另外一個(gè)版本Qt/X11,Qt/Embedded并不依賴于XServer。這使Qt/Embedded相對(duì)于Qt/X11節(jié)省了不少的內(nèi)存。代替X server和Xlib庫的是Qt/Embedded庫。根據(jù)應(yīng)用的需要,可以對(duì)其進(jìn)行配置,編譯后庫的大小從700 kB~7 MB左右,典型應(yīng)用的庫大小大約為2~3 MB。如果事先知道應(yīng)用和相關(guān)的具體組件,還可以將應(yīng)用程序、組件和Qt/Embedded庫靜態(tài)連接,從而更能節(jié)約內(nèi)存
于 曉,王家禮,宋營(yíng)坤,谷懷棟,余 濤
1 引 言
嵌入式系統(tǒng)的出現(xiàn)至今已有30多年的歷史,嵌入式技術(shù)也經(jīng)歷了三個(gè)發(fā)展階段。早期的嵌入式系統(tǒng)因資源極其有限,只有字符界面或者簡(jiǎn)單的圖形界面。隨著技術(shù)的發(fā)展,硬件成本的大幅下降,嵌入式系統(tǒng)應(yīng)用要求越來越高,應(yīng)用范圍越來越廣。這樣字符界面和簡(jiǎn)單的圖形界面不再能滿足一些嵌入式系統(tǒng)的要求。嵌入式系統(tǒng)對(duì)圖形用戶界面(GUI)的需求越來越迫切。
不同于在個(gè)人PC上的圖形用戶界面,對(duì)嵌入式系統(tǒng)上的GUI包括:輕型、占用資源少,可配置,高性能,高可靠性。
2 幾種成熟的基于Linux的嵌入式GUI
2.1 MicroWindows/NanoX
MicroWindows是一個(gè)開放源代碼的項(xiàng)目,起源于NanoGUI項(xiàng)目。他支持兩種應(yīng)用程序編程接口,Win32API的實(shí)現(xiàn)叫MicroWindows,類似Xlib API的實(shí)現(xiàn)叫Nano-X。
MicroWindows是一個(gè)基于典型客戶/服務(wù)器體系結(jié)構(gòu)的GUI系統(tǒng),基本分成3層。最底層是面向圖形輸出和鍵盤、鼠標(biāo)或觸摸屏的驅(qū)動(dòng)程序;中間層提供底層硬件的抽象接口,并進(jìn)行窗口管理,實(shí)際上是一個(gè)可移植的窗口引擎。他實(shí)現(xiàn)了畫線、區(qū)域填充、多邊形、剪切和多種顏色模式,這些實(shí)現(xiàn)是參考Xfree86而設(shè)計(jì)的;最高層分別提供兼容于Xwindow和Windows CE(Win 32子集)的API。
該項(xiàng)目的主要特色在于提供了類似X的客戶/服務(wù)器體系結(jié)構(gòu)和相對(duì)完善的圖形功能,包括一些高級(jí)功能。比如Alpha混合、三維支持、TrueType字體支持等。該項(xiàng)目目前由美國(guó)Century Software公司主持開發(fā)。
2.2 MiniGUI
MiniGUI是原清華大學(xué)教師魏永明主持的一個(gè)自由軟件項(xiàng)目,其目標(biāo)是基于Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級(jí)的圖形用戶界面支持系統(tǒng)。MiniGUI基于SVGALib和LinuXThread庫,采用簡(jiǎn)化的類Windows風(fēng)格的圖形用戶界面,功能限制期不能用于更大的嵌入式系統(tǒng)。
2.3 Qt/Embedded
Qt/Embedded是跨平臺(tái)C++圖形用戶界面工具包,因其面向?qū)ο、跨平臺(tái)、界面設(shè)計(jì)更美觀而得到廣泛應(yīng)用。基于Qt的X Window程序可以方便地移植到Qt/Embedded版本上。因此,自從Qt/Embedded以GPL條款發(fā)布以來,就有大量的嵌入式開發(fā)商轉(zhuǎn)到Qt/Embedded系統(tǒng)上。
3 Qt/Embedded框架結(jié)構(gòu)及編程關(guān)健技術(shù)
3.1 Qt/Embedded的開發(fā)環(huán)境及工具
使用Troll tech公司的X開發(fā)平臺(tái)自由軟件的自由版:Qt/Embedded 3.3.3。下載RPM包并安裝。Qt支持多種處理器,根據(jù)所選用的處理器進(jìn)行適當(dāng)?shù)呐渲煤途幾g,即可得到如下創(chuàng)建應(yīng)用程序所需的軟件包和工具:
(1) Qt/Embedded函數(shù)庫。
(2) 虛擬幀緩沖qvfb(virtual frame buffer):在X窗口用來運(yùn)行和測(cè)試Qt/Embedded應(yīng)用程序的系統(tǒng)程序。有了他,就可以不必在控制臺(tái)和X11之間來回切換了。
(3) designer:Qt下用于設(shè)計(jì)窗口組件的工具。
(4) tmake:Makefile文件的自動(dòng)生成器。
(5) moc:用于Qt C++擴(kuò)展的meta-object編譯器。
(6) uic:從XML文件生成代碼的用戶界面編譯器。
(7) 其他工具,再加上g++,就可以進(jìn)行基于Qt/Em-bedded的應(yīng)用程序開發(fā)、編譯和調(diào)試了。
3.2 Qt/Embedded的框架結(jié)構(gòu)
圖1是Qt/Embedded的框架結(jié)構(gòu)。相對(duì)于Linux上Qt的另外一個(gè)版本Qt/X11,Qt/Embedded并不依賴于XServer。這使Qt/Embedded相對(duì)于Qt/X11節(jié)省了不少的內(nèi)存。代替X server和Xlib庫的是Qt/Embedded庫。根據(jù)應(yīng)用的需要,可以對(duì)其進(jìn)行配置,編譯后庫的大小從700 kB~7 MB左右,典型應(yīng)用的庫大小大約為2~3 MB。如果事先知道應(yīng)用和相關(guān)的具體組件,還可以將應(yīng)用程序、組件和Qt/Embedded庫靜態(tài)連接,從而更能節(jié)約內(nèi)存
熱門點(diǎn)擊
- 嵌入式系統(tǒng)內(nèi)存管理方案研究
- 指針、結(jié)構(gòu)體、聯(lián)合體的安全規(guī)范
- 基于Qt/Embedded的微波信號(hào)發(fā)生器軟
- 單片機(jī)IP技術(shù)在智能小區(qū)系統(tǒng)中的應(yīng)用
- 利用ColdFire uClinux實(shí)現(xiàn)數(shù)據(jù)
- 嵌入式Linux的動(dòng)態(tài)擴(kuò)展技術(shù)研究
- 具有DSP功能的16位微控制器80296SA
- 基于嵌入式PLC芯片組多路模擬量PLC開發(fā)
- 基于8051軟核的SOPC系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 一款32位嵌入式CPU的定點(diǎn)加法器設(shè)計(jì)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究