基于A(yíng)RM-Linux的MiniGUI的仿真與移植
1MiniGUI的特點(diǎn)和體系結構
MiniGUI項目的最初目標是為基于Linux的實(shí)時(shí)嵌入式操作系統提供一個(gè)輕量級的圖像用戶(hù)界面支持系統。作為操作系統和應用程序之間的中間件,MiniGUI將底層操作系統與硬件平臺之間的差別隱藏起來(lái),并對上層應用程序提供了一致的功能特性。
1.1MiniGUI的特點(diǎn)
(1)占用資源少:MiniGUI本身占用的空間非常小,整個(gè)MiniGUI系統占用空間在2~4MB,在某些系統上,MiniGUI系統本身所占用的空間可進(jìn)一步縮小到1MB以?xún)取?br />(2)高性能、高可靠性:MiniGUI良好的體系結構及優(yōu)化的圖形接口,可確保最快的圖形繪制速度。
(3)可定制配置:和Linux內核類(lèi)似,MiniGUI也具有大量的編譯配置選項,通過(guò)這些選項可指定MiniGUI庫中包括哪些用戶(hù)所需要的功能。
(4)跨操作系統支持:MiniGUI支持Linux/uClinux、eCos、uC/OS-II、VxWorks等嵌入式操作系統。同時(shí),在不同操作系統上的MiniGUI,提供完全兼容的API接口。
1.2MiniGUI的體系結構
從整體結構上看,MiniGUI采用的是分層設計的,結構如圖1所示。

圖1MiniGUI的分層體系結構
在最底層,GAL(圖形抽象層)和IAL(輸入抽象層)及鼠標和鍵盤(pán)的驅動(dòng);中間層是MiniGUI的核心層,包括窗口系統必不可少的各個(gè)模塊;最頂層是API,即編程接口。GAL和IAL為MiniGUI提供了底層的Linux控制臺或者X-Window上的圖形接口以及輸入接口,而Pthread用于提供內核級線(xiàn)程支持的C函數庫。利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序開(kāi)發(fā)和調試變得更加容易。
2MiniGUI在QVFB上的仿真應用
MiniGUI能夠在PC機上運行,也能夠移植到目標板上運行。在運行Linux的PC機上,MiniGUI應用程序可以通過(guò)以下兩種方式運行:
(1)在X-Window上,在虛擬FrameBuffer的QVFB中運行;
(2)在Linux的字符控制臺上,在Linux內核提供的FrameBuffer驅動(dòng)上運行;
這里主要介紹MiniGUI在QVFB中的仿真運行。QVFB是Qt(Qt是Linux窗口管理器KDE使用的底層函數庫)提供的一個(gè)虛擬FrameBuffer工具,該程序是基于Qt開(kāi)發(fā)的。
2.1建立MiniGUI在Linux上的運行環(huán)境
在Linux環(huán)境下,將已經(jīng)下載好的壓縮安裝文件qvfb-1.0.tar.gz復制到/opt目錄下,在該目錄下解壓,利用makeinstall命令把QVFB安裝到系統默認的/usr/local/bin目錄下。在X-Window環(huán)境下,打開(kāi)終端,鍵入qvfb命令,啟動(dòng)QVFB模擬程序。接下來(lái)對QVFB的運行環(huán)境進(jìn)行配置,這里配置為640×480,Depth為16bit。QVFB提供了一種軟件的方法,通過(guò)這種方法,可以看到自己的圖像應用程序在PC上運行的效果。它能模擬不同的分辨率及顯示的顏色數,因此可以模擬目標機上的嵌入式顯示屏,從而大大方便了應用程序的開(kāi)發(fā)與調試。
2.2安裝資源文件和配置MiniGUI的庫文件
在Linux環(huán)境下,將已下載好的壓縮資源文件
minigui-res-1.3.3.tar.gz(該文件包含字體、光標、圖標、位圖等資源)復制到/opt/emulation目錄下(emulation目錄為新創(chuàng )建的目錄),然后運行./configure腳本成功通過(guò),就可以執行make和makeinstall命令,將資源文件安裝到系統默認的/usr/local/lib/minigui/res目錄中。將下載好的壓縮庫文件libminigui-1.3.3.tar.gz復制到/opt/emulation目錄下,輸入解壓縮命令然后進(jìn)入解壓后的目錄,在該目錄下輸入makemenuconfig,啟動(dòng)圖像界面的配置工具,當配置完成后,輸入make對庫文件進(jìn)行重新編譯,如果編譯成功,輸入makeinstall命令,將MiniGUI庫安裝到默認的/usr/local/lib/目錄下。接下來(lái),查看文件/etc/ld.so.conf,如果文件中沒(méi)有/usr/local/lib這一行,將該行添加到文件的最后,然后執行ldconfig。
2.3MiniGUI在QVFB上的仿真
將已下載的mg-samples-1.3.1和mde-1.3.0.tar.gz復制到/opt/emlation/目錄下,在終端下進(jìn)入該目錄,依次執行./configure和make命令,將這些示例程序編譯成能夠在QVFB上可執行的程序。首先修改/usr/local/etc目錄下的配置文件MiniGUI.cfg,將gal_engine=fbcon改為gal_engine=qvfb,ial_engine=console改為ial_engine=qvfb。然后使用qvfb命令啟動(dòng)qvfb,運行/opt/emulation/mg-samples/src目錄中的可執行程序,如bomb,即可看到運行在QVFB內的MiniGUI程序,如圖2所示:

国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
在最底層,GAL(圖形抽象層)和IAL(輸入抽象層)及鼠標和鍵盤(pán)的驅動(dòng);中間層是MiniGUI的核心層,包括窗口系統必不可少的各個(gè)模塊;最頂層是API,即編程接口。GAL和IAL為MiniGUI提供了底層的Linux控制臺或者X-Window上的圖形接口以及輸入接口,而Pthread用于提供內核級線(xiàn)程支持的C函數庫。利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序開(kāi)發(fā)和調試變得更加容易。
2MiniGUI在QVFB上的仿真應用
MiniGUI能夠在PC機上運行,也能夠移植到目標板上運行。在運行Linux的PC機上,MiniGUI應用程序可以通過(guò)以下兩種方式運行:
(1)在X-Window上,在虛擬FrameBuffer的QVFB中運行;
(2)在Linux的字符控制臺上,在Linux內核提供的FrameBuffer驅動(dòng)上運行;
這里主要介紹MiniGUI在QVFB中的仿真運行。QVFB是Qt(Qt是Linux窗口管理器KDE使用的底層函數庫)提供的一個(gè)虛擬FrameBuffer工具,該程序是基于Qt開(kāi)發(fā)的。
2.1建立MiniGUI在Linux上的運行環(huán)境
在Linux環(huán)境下,將已經(jīng)下載好的壓縮安裝文件qvfb-1.0.tar.gz復制到/opt目錄下,在該目錄下解壓,利用makeinstall命令把QVFB安裝到系統默認的/usr/local/bin目錄下。在X-Window環(huán)境下,打開(kāi)終端,鍵入qvfb命令,啟動(dòng)QVFB模擬程序。接下來(lái)對QVFB的運行環(huán)境進(jìn)行配置,這里配置為640×480,Depth為16bit。QVFB提供了一種軟件的方法,通過(guò)這種方法,可以看到自己的圖像應用程序在PC上運行的效果。它能模擬不同的分辨率及顯示的顏色數,因此可以模擬目標機上的嵌入式顯示屏,從而大大方便了應用程序的開(kāi)發(fā)與調試。
2.2安裝資源文件和配置MiniGUI的庫文件
在Linux環(huán)境下,將已下載好的壓縮資源文件
minigui-res-1.3.3.tar.gz(該文件包含字體、光標、圖標、位圖等資源)復制到/opt/emulation目錄下(emulation目錄為新創(chuàng )建的目錄),然后運行./configure腳本成功通過(guò),就可以執行make和makeinstall命令,將資源文件安裝到系統默認的/usr/local/lib/minigui/res目錄中。將下載好的壓縮庫文件libminigui-1.3.3.tar.gz復制到/opt/emulation目錄下,輸入解壓縮命令然后進(jìn)入解壓后的目錄,在該目錄下輸入makemenuconfig,啟動(dòng)圖像界面的配置工具,當配置完成后,輸入make對庫文件進(jìn)行重新編譯,如果編譯成功,輸入makeinstall命令,將MiniGUI庫安裝到默認的/usr/local/lib/目錄下。接下來(lái),查看文件/etc/ld.so.conf,如果文件中沒(méi)有/usr/local/lib這一行,將該行添加到文件的最后,然后執行ldconfig。
2.3MiniGUI在QVFB上的仿真
將已下載的mg-samples-1.3.1和mde-1.3.0.tar.gz復制到/opt/emlation/目錄下,在終端下進(jìn)入該目錄,依次執行./configure和make命令,將這些示例程序編譯成能夠在QVFB上可執行的程序。首先修改/usr/local/etc目錄下的配置文件MiniGUI.cfg,將gal_engine=fbcon改為gal_engine=qvfb,ial_engine=console改為ial_engine=qvfb。然后使用qvfb命令啟動(dòng)qvfb,運行/opt/emulation/mg-samples/src目錄中的可執行程序,如bomb,即可看到運行在QVFB內的MiniGUI程序,如圖2所示:

相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論