




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 3第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.1.1 MiniGUI 8.1.1 MiniGUI的功能特征的功能特征 MiniGUI是一種在
2、嵌入式系統(tǒng)中提供圖形及圖形用戶界是一種在嵌入式系統(tǒng)中提供圖形及圖形用戶界面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級(jí)圖形用戶面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級(jí)圖形用戶界面支持系統(tǒng),國(guó)內(nèi)著名的自在軟件工程之一。界面支持系統(tǒng),國(guó)內(nèi)著名的自在軟件工程之一。 功能特性功能特性 完備的多窗口機(jī)制和音訊傳送機(jī)制。完備的多窗口機(jī)制和音訊傳送機(jī)制。 常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、進(jìn)度條、屬性頁(yè)、工具欄、拖動(dòng)條、樹框、列表框、組合框、進(jìn)度條、屬性頁(yè)、工具欄、拖動(dòng)條、樹型控件、月歷控件等。型控件、月歷控件等。 支持
3、對(duì)話框和音訊框以及其它支持對(duì)話框和音訊框以及其它GUIGUI元素,包括菜單、加速鍵元素,包括菜單、加速鍵、插入符、定時(shí)器等。、插入符、定時(shí)器等。 經(jīng)過(guò)兩種不同的內(nèi)部軟件構(gòu)造支持低端顯示設(shè)備比如單經(jīng)過(guò)兩種不同的內(nèi)部軟件構(gòu)造支持低端顯示設(shè)備比如單色色 LCD LCD和高端顯示設(shè)備比如彩色顯示器。前者小巧靈敏和高端顯示設(shè)備比如彩色顯示器。前者小巧靈敏,而后者在前者的根底上提供了更加強(qiáng)大的圖形功能。,而后者在前者的根底上提供了更加強(qiáng)大的圖形功能。 支持支持WindowsWindows的資源文件,如位圖、圖標(biāo)、光標(biāo)等。的資源文件,如位圖、圖標(biāo)、光標(biāo)等。 支持各種流行的圖像文件,包括支持各種流行的圖像文件
4、,包括JPEGJPEG、GIFGIF、PNGPNG、TGATGA、BMPBMP等等。等等。 支持多字符集和多字體。支持多字符集和多字體。 針對(duì)嵌入式系統(tǒng),支持普通性的針對(duì)嵌入式系統(tǒng),支持普通性的I/OI/O操作和文件操作等。操作和文件操作等。4第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.1.2 MiniGUI 8.1.2 MiniGUI 的技術(shù)優(yōu)勢(shì)的技術(shù)優(yōu)勢(shì) 和其它針對(duì)嵌入式產(chǎn)品的圖形系統(tǒng)相比,和其它針對(duì)嵌入式產(chǎn)品的圖形系統(tǒng)相比,MiniGUI具有如具有如下幾大技術(shù)優(yōu)勢(shì):下幾大技術(shù)優(yōu)勢(shì): 1占用資源少占用資源少 2高性能、高可靠性高性能、高可靠性 3可定制配置可定
5、制配置 4跨操作系統(tǒng)支持跨操作系統(tǒng)支持 5第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 6第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.1 MiniGUI 8.2.1 MiniGUI在在
6、LinuxLinux下的運(yùn)轉(zhuǎn)環(huán)境下的運(yùn)轉(zhuǎn)環(huán)境 在運(yùn)轉(zhuǎn)在運(yùn)轉(zhuǎn)Linux的的PC機(jī)上,機(jī)上,MiniGUI運(yùn)用程序可以經(jīng)過(guò)以下兩種運(yùn)用程序可以經(jīng)過(guò)以下兩種方式運(yùn)轉(zhuǎn):方式運(yùn)轉(zhuǎn):在在X Window上,在虛擬上,在虛擬FrameBuffer的的QVFB中運(yùn)轉(zhuǎn);中運(yùn)轉(zhuǎn);在在Linux的字符控制臺(tái)上,在的字符控制臺(tái)上,在Linux內(nèi)核提供的內(nèi)核提供的FrameBuffer驅(qū)動(dòng)上運(yùn)轉(zhuǎn)。驅(qū)動(dòng)上運(yùn)轉(zhuǎn)。QVFB FrameBuffer設(shè)備驅(qū)動(dòng)設(shè)備驅(qū)動(dòng) QVFB是是QtQt是是Linux 窗口管理器窗口管理器KDE運(yùn)用的底層函數(shù)庫(kù)運(yùn)用的底層函數(shù)庫(kù)提供的一個(gè)虛擬的提供的一個(gè)虛擬的FrameBuffer工具。在工具。在
7、X Window環(huán)境下,環(huán)境下,進(jìn)展基于進(jìn)展基于QVFB之上的之上的MiniGUI模擬開發(fā)、調(diào)試是常用的開發(fā)模擬開發(fā)、調(diào)試是常用的開發(fā)調(diào)試手段。調(diào)試手段。 對(duì)于大部分兼容對(duì)于大部分兼容VESA規(guī)范顯卡的規(guī)范顯卡的PC機(jī),運(yùn)用機(jī),運(yùn)用RedHat內(nèi)核中包含的內(nèi)核中包含的VESA FrameBuffer驅(qū)動(dòng)程序驅(qū)動(dòng)程序就可以運(yùn)轉(zhuǎn)就可以運(yùn)轉(zhuǎn)MINIGUI了。假設(shè)本人編譯內(nèi)核,那么需了。假設(shè)本人編譯內(nèi)核,那么需求選中求選中FrameBuffer的支持。的支持。 7第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.2 8.2.2 安裝資源文件安裝資源文件 在在Linux環(huán)境下
8、,把該文件復(fù)制到環(huán)境下,把該文件復(fù)制到/opt/emulation目錄下目錄下(emulation目錄為創(chuàng)建的目錄目錄為創(chuàng)建的目錄)。執(zhí)行如下解緊縮命令:。執(zhí)行如下解緊縮命令:rootlocalhost emulation# tar zxvf minigui-res-1.3.3.tar.gz 該命令將建立該命令將建立minigui-res-1.3.3目錄,然后進(jìn)入該目錄:目錄,然后進(jìn)入該目錄:rootlocalhost emulation# cd minigui-res-1.3.3最后,經(jīng)過(guò)最后,經(jīng)過(guò)make install命令安裝資源文件:命令安裝資源文件:rootlocalhost min
9、igui-res-1.3.3# make install這樣,資源文件就安裝到這樣,資源文件就安裝到/usr/local/lib/minigui/res目錄。目錄。 8第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.3 8.2.3 配置安裝配置安裝MiniGUIMiniGUI庫(kù)文件庫(kù)文件 MiniGUI是以庫(kù)的方式提供應(yīng)用戶的,經(jīng)過(guò)將是以庫(kù)的方式提供應(yīng)用戶的,經(jīng)過(guò)將MiniGUI的庫(kù)文件編譯進(jìn)運(yùn)用程序來(lái)運(yùn)用的庫(kù)文件編譯進(jìn)運(yùn)用程序來(lái)運(yùn)用MiniGUI。步驟如下:。步驟如下: 1、下載緊縮的庫(kù)文件、下載緊縮的庫(kù)文件libminigui-1.3.3.tar.gz 2、解
10、緊縮、解緊縮 tar zxvf libminigui-1.3.3.tar.gz 3、配置圖形界面、配置圖形界面 make menuconfig4、安裝庫(kù)文件、安裝庫(kù)文件 make make install 9第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在
11、在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 10第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI v 在在QVFBQVFB上運(yùn)轉(zhuǎn)例如程序的步驟上運(yùn)轉(zhuǎn)例如程序的步驟 mg-samples-1.3.1目錄下包含了目錄下包含了MiniGUI提供的多個(gè)例如提供的多個(gè)例如程序,經(jīng)過(guò)在程序,經(jīng)過(guò)在mg-samples-1.3.1目錄下依次執(zhí)行目錄下依次執(zhí)行./configure命命令和令和make命令,可以將這些例如程序編譯生成可執(zhí)行程序。命令,可以將這些例如程序編譯生成可執(zhí)行程序。 1按照如下配置,修正按照如下配置,修正/usr/local/etc目錄下的配置文件目錄下的配置文件MiniGU
12、I.cfg。systemgal_engine = fbcon改為改為gal_engine = qvfbial_engine = console改為改為ial_engine = qvfbqvfbdefaultmode = 320 x240-8bpp 2運(yùn)用運(yùn)用qvfb &命令啟動(dòng)曾經(jīng)安裝的命令啟動(dòng)曾經(jīng)安裝的qvfb,并在,并在File菜單菜單下配置下配置qvfb為為320 x240-8bpp方式。方式。 3運(yùn)轉(zhuǎn)運(yùn)轉(zhuǎn)/opt/emulation/mg-samples/src/目錄中的可執(zhí)目錄中的可執(zhí)行程序行程序 。11第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI v
13、 在在QVFBQVFB上運(yùn)轉(zhuǎn)本人編寫的運(yùn)用程序的步驟上運(yùn)轉(zhuǎn)本人編寫的運(yùn)用程序的步驟 假設(shè)文件名為假設(shè)文件名為demo.c,需求的步驟如下:,需求的步驟如下: 1進(jìn)入進(jìn)入mg-samples-1.3.1目錄,執(zhí)行目錄,執(zhí)行./configure ; 2把文件把文件demo.c復(fù)制到復(fù)制到/opt/emulation/mg-samples-1.3.1/src目錄下目錄下 ; 3翻開該目錄下的文件翻開該目錄下的文件Makefile.am:在在COMMON_PROGS = 的內(nèi)容末尾填加可執(zhí)行文件名的內(nèi)容末尾填加可執(zhí)行文件名demo。然后,在然后,在noinst_PROGRAMS=$(COMMON_P
14、ROGS) $(LITE_PROGS)下填加下填加demo_SOURCES = demo.c。 4在目錄在目錄/opt/emulation/ mg-samples-1.3.1/src下,執(zhí)下,執(zhí)行行make命令命令 ,生成可執(zhí)行文件,生成可執(zhí)行文件demo; 5修正修正/usr/local/etc目錄下目錄下MiniGUI的配置文件的配置文件MiniGUI.cfg 6在在/opt/emulation/ mg-samples-1.3.1/src目錄下執(zhí)行目錄下執(zhí)行qvfb &命令;命令; 7執(zhí)行執(zhí)行demo程序:程序: rootlocalhost src# ./demo 12第八章第八章
15、 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 13第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.1 FrameBuffer 8.4.1 FrameBuffer簡(jiǎn)介簡(jiǎn)介 FrameBuffer是出如今
16、是出如今linux 2.2.xx及以上內(nèi)核當(dāng)及以上內(nèi)核當(dāng)中的一種驅(qū)動(dòng)程序接口。這種接口將顯示設(shè)備籠統(tǒng)為中的一種驅(qū)動(dòng)程序接口。這種接口將顯示設(shè)備籠統(tǒng)為幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個(gè)映像幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個(gè)映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)展讀,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)展讀寫操作,寫操作可以立刻反映在屏幕上。該驅(qū)動(dòng)程序?qū)懖僮鳎瑢懖僮骺梢粤⒖谭从吃谄聊簧?。該?qū)動(dòng)程序的設(shè)備文件普通是的設(shè)備文件普通是/dev/fb0、/dev/fb1等等。等等。 在運(yùn)用程序中,假想象運(yùn)用在運(yùn)用程序中,假想象運(yùn)用FrameBuffer,普通需,普通需求把求把F
17、rameBuffer設(shè)備文件映射到進(jìn)程地址空間。操設(shè)備文件映射到進(jìn)程地址空間。操作方法是首先翻開作方法是首先翻開/dev/fb0設(shè)備,然后經(jīng)過(guò)設(shè)備,然后經(jīng)過(guò)mmap系系統(tǒng)調(diào)用進(jìn)展地址映射,接下來(lái)就可以對(duì)統(tǒng)調(diào)用進(jìn)展地址映射,接下來(lái)就可以對(duì)Framebuffer進(jìn)展操作了。進(jìn)展操作了。 14第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.2 FrameBuffer 8.4.2 FrameBuffer驅(qū)動(dòng)的添加驅(qū)動(dòng)的添加 將支持將支持S3C2410的的FrameBuffer驅(qū)動(dòng)的源程序驅(qū)動(dòng)的源程序S3C2410fb.c編譯進(jìn)內(nèi)核。編譯進(jìn)內(nèi)核。 為了保證編譯勝利,還需求對(duì)
18、如下相關(guān)文件進(jìn)展修正:為了保證編譯勝利,還需求對(duì)如下相關(guān)文件進(jìn)展修正:kernel/drivers/video/Config.in 這個(gè)文件包含許多與顯示相關(guān)的配置信息。這個(gè)文件包含許多與顯示相關(guān)的配置信息。 kernel/drivers/video/Makefile 在該文件中設(shè)置假設(shè)配置時(shí)選擇了在該文件中設(shè)置假設(shè)配置時(shí)選擇了CONFIG_FB_S3C2410,就,就會(huì)將會(huì)將S3C2410 FrameBuffer的驅(qū)動(dòng)程序參與的驅(qū)動(dòng)程序參與linux內(nèi)核。內(nèi)核。 kernel/drivers/video/fbmem.c 該文件的作用是通知內(nèi)核如何調(diào)用相應(yīng)的該文件的作用是通知內(nèi)核如何調(diào)用相應(yīng)的
19、FrameBuffer驅(qū)動(dòng)。驅(qū)動(dòng)。 15第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.3 FrameBuffer 8.4.3 FrameBuffer設(shè)備文件的添加設(shè)備文件的添加 Linux Linux要在嵌入式系統(tǒng)上運(yùn)轉(zhuǎn),還需求文件系統(tǒng)的支持。要在嵌入式系統(tǒng)上運(yùn)轉(zhuǎn),還需求文件系統(tǒng)的支持。運(yùn)用程序?qū)\(yùn)用程序?qū)rameBufferFrameBuffer驅(qū)動(dòng)程序的運(yùn)用是經(jīng)過(guò)設(shè)備文件來(lái)進(jìn)驅(qū)動(dòng)程序的運(yùn)用是經(jīng)過(guò)設(shè)備文件來(lái)進(jìn)展的。展的。 所以,必需在文件系統(tǒng)中創(chuàng)建所以,必需在文件系統(tǒng)中創(chuàng)建FrameBufferFrameBuffer相應(yīng)的設(shè)備文相應(yīng)的設(shè)備文件,才干讓運(yùn)用程序
20、運(yùn)用件,才干讓運(yùn)用程序運(yùn)用FrameBufferFrameBuffer驅(qū)動(dòng)。驅(qū)動(dòng)。 由于設(shè)備文件運(yùn)用了設(shè)備文件系統(tǒng),因此,可以不用思索由于設(shè)備文件運(yùn)用了設(shè)備文件系統(tǒng),因此,可以不用思索其主次設(shè)備號(hào),只需求思索驅(qū)動(dòng)程序調(diào)用的是設(shè)備其主次設(shè)備號(hào),只需求思索驅(qū)動(dòng)程序調(diào)用的是設(shè)備fb0fb0即可,即可,但又由于設(shè)備文件系統(tǒng)生成的設(shè)備文件為但又由于設(shè)備文件系統(tǒng)生成的設(shè)備文件為fb/0fb/0,所以需求在,所以需求在文件系統(tǒng)中做一個(gè)符號(hào)銜接,也就是當(dāng)找到文件系統(tǒng)中做一個(gè)符號(hào)銜接,也就是當(dāng)找到fb/0fb/0時(shí),直接銜時(shí),直接銜接到接到fb0fb0。要實(shí)現(xiàn)以上的符號(hào)銜接,只需求在文件系統(tǒng)的。要實(shí)現(xiàn)以上的符號(hào)
21、銜接,只需求在文件系統(tǒng)的/usr/etc/rc.local/usr/etc/rc.local文件中添加文件中添加 ln -s fb/0 fb0 ln -s fb/0 fb016第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.4 FrameBuffer 8.4.4 FrameBuffer測(cè)試程序編寫測(cè)試程序編寫 FrameBuffer FrameBuffer程序移植完成后,需求對(duì)其進(jìn)展測(cè)試,確保程序移植完成后,需求對(duì)其進(jìn)展測(cè)試,確保沒(méi)有問(wèn)題后才干進(jìn)展下一步?jīng)]有問(wèn)題后才干進(jìn)展下一步MiniGUIMiniGUI的移植。的移植。 測(cè)試程序的主要功能是:在文件系統(tǒng)中添加一個(gè)
22、運(yùn)用程測(cè)試程序的主要功能是:在文件系統(tǒng)中添加一個(gè)運(yùn)用程序,經(jīng)過(guò)系統(tǒng)調(diào)用翻開序,經(jīng)過(guò)系統(tǒng)調(diào)用翻開/dev/fb0/dev/fb0設(shè)備文件,顯示相應(yīng)的信設(shè)備文件,顯示相應(yīng)的信息,并向映射的緩存寫入顯示數(shù)據(jù),在息,并向映射的緩存寫入顯示數(shù)據(jù),在LCDLCD屏上顯示間隔相屏上顯示間隔相等的多種顏色條紋。等的多種顏色條紋。17第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在
23、在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 18第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.1 8.5.1 安裝安裝MiniGUIMiniGUI的資源文件的資源文件 1、在、在PC機(jī)上對(duì)資源文件機(jī)上對(duì)資源文件minigui-res-1.3.3.tar.gz解緊縮;解緊縮; rootlocalhost target# tar zxvf minigui-res-1.3.3.tar.gz 2、進(jìn)入、進(jìn)入minigui-res-1.3.3目錄,安裝資源文件;目錄,安裝
24、資源文件;rootlocalhost minigui-res-1.3.3# make install 3、把、把/opt/target/minigui/usr/local/lib目錄下的目錄下的minigui目目錄拷貝到要制造的錄拷貝到要制造的cramfs文件系統(tǒng)的文件夾中。文件系統(tǒng)的文件夾中。 19第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.2 8.5.2 配置安裝配置安裝MiniGUIMiniGUI庫(kù)文件庫(kù)文件 1、確認(rèn)安裝了交叉編譯器,即、確認(rèn)安裝了交叉編譯器,即armv4l-unknown-linux系列系列的交叉編譯器;的交叉編譯器;2、改動(dòng)目錄到、
25、改動(dòng)目錄到/opt/target/libminigui-1.3.3下下,鍵入命令鍵入命令make menuconfig進(jìn)展配置;進(jìn)展配置; 3、安裝庫(kù)文件:、安裝庫(kù)文件: make make install 4、去除庫(kù)文件、去除庫(kù)文件libminigui-1.3.so.3.0.0和和libmgext-1.3.so.3.0.0中的調(diào)試信息和符號(hào)信息。中的調(diào)試信息和符號(hào)信息。 armv4l-unknown-linux-strip libminigui-1.3.so.3.0.0 20第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.3 MiniGUI 8.5.3 Mini
26、GUI的移植步驟的移植步驟 要將要將MiniGUIMiniGUI移植到移植到S3C2410S3C2410,通常需求按照如下步驟進(jìn)展:,通常需求按照如下步驟進(jìn)展:1 1把曾經(jīng)去除調(diào)試信息和符號(hào)信息的把曾經(jīng)去除調(diào)試信息和符號(hào)信息的MiniGUIMiniGUI庫(kù)文件庫(kù)文件libminigui-libminigui-1.3.so.3.0.01.3.so.3.0.0和和libmgext-1.3.so.3.0.0libmgext-1.3.so.3.0.0,以及它們的符號(hào)銜接文件,一同復(fù)制,以及它們的符號(hào)銜接文件,一同復(fù)制到要制形成到要制形成cramfscramfs文件系統(tǒng)的目錄文件系統(tǒng)的目錄root_te
27、chroot_tech中的中的/lib/lib下。下。2 2把把/opt/tgt/minigui/usr/local/lib/opt/tgt/minigui/usr/local/lib下的下的miniguiminigui目錄復(fù)制到要制造目錄復(fù)制到要制造cramfscramfs文件系統(tǒng)的目錄中。比如放到該目錄的文件系統(tǒng)的目錄中。比如放到該目錄的/usr/sbin/usr/sbin/下。當(dāng)嵌入式系統(tǒng)運(yùn)下。當(dāng)嵌入式系統(tǒng)運(yùn)轉(zhuǎn)時(shí),運(yùn)用程序在該轉(zhuǎn)時(shí),運(yùn)用程序在該miniguiminigui目錄下調(diào)用相關(guān)的資源文件。目錄下調(diào)用相關(guān)的資源文件。3 3在在root_techroot_tech文件夾內(nèi),運(yùn)用如下命
28、令創(chuàng)建一個(gè)目錄:文件夾內(nèi),運(yùn)用如下命令創(chuàng)建一個(gè)目錄:mkdir mkdir p /opt/host/armv4l/armv4l-unknown-linux/p /opt/host/armv4l/armv4l-unknown-linux/接下來(lái),創(chuàng)建文件夾的符號(hào)銜接:接下來(lái),創(chuàng)建文件夾的符號(hào)銜接:ln ln s /lib /opt/host/armv4l/armv4l-unknown-linux/libs /lib /opt/host/armv4l/armv4l-unknown-linux/lib4 4修正修正/opt/host/armv4l/armv4l-unknown-linux/etc/o
29、pt/host/armv4l/armv4l-unknown-linux/etc目錄下的目錄下的MiniGUI.cfgMiniGUI.cfg文件,把存放資源的途徑改為文件,把存放資源的途徑改為root_techroot_tech目錄下對(duì)應(yīng)的途徑,從而使運(yùn)用程序可目錄下對(duì)應(yīng)的途徑,從而使運(yùn)用程序可以找到它運(yùn)用的資源文件。修正后的以找到它運(yùn)用的資源文件。修正后的MiniGUI.cfgMiniGUI.cfg文件要放到文件要放到root_techroot_tech目錄的目錄的/mnt/etc/mnt/etc目錄下。目錄下。5 5最后,把預(yù)備好的最后,把預(yù)備好的root_techroot_tech文件夾,
30、利用文件夾,利用mkcramfsmkcramfs命令,生成命令,生成cramfscramfs文文件系統(tǒng)。生成的文件系統(tǒng),可以經(jīng)過(guò)件系統(tǒng)。生成的文件系統(tǒng),可以經(jīng)過(guò)imagewriteimagewrite命令,利用命令,利用NFSNFS網(wǎng)絡(luò)文件系統(tǒng)或網(wǎng)絡(luò)文件系統(tǒng)或U U盤下載到目的系統(tǒng)中。盤下載到目的系統(tǒng)中。 21第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3
31、C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 22第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.6.1 IAL 8.6.1 IAL引擎簡(jiǎn)介引擎簡(jiǎn)介 MiniGUI引入了輸入籠統(tǒng)層引入了輸入籠統(tǒng)層( Graphics and Input Abstract Layer,即,即GAL和和IAL)的概念。籠統(tǒng)層的概念類似的概念。籠統(tǒng)層的概念類似于于Linux虛擬文件系統(tǒng)的概念。它定義了一組不依賴于任何虛擬文件系統(tǒng)的概念。它定義了一組不依賴于任何特殊硬件的籠統(tǒng)接口,一切頂層的輸入處置
32、都建立在籠統(tǒng)接特殊硬件的籠統(tǒng)接口,一切頂層的輸入處置都建立在籠統(tǒng)接口之上。由于實(shí)現(xiàn)這一輸入籠統(tǒng)接口的底層代碼是一種類似口之上。由于實(shí)現(xiàn)這一輸入籠統(tǒng)接口的底層代碼是一種類似于操作系統(tǒng)驅(qū)動(dòng)程序的于操作系統(tǒng)驅(qū)動(dòng)程序的“輸入引擎,所以它的設(shè)計(jì)實(shí)踐上輸入引擎,所以它的設(shè)計(jì)實(shí)踐上是一種面向?qū)ο蟮某绦驑?gòu)造。利用這種籠統(tǒng)接口,可以將是一種面向?qū)ο蟮某绦驑?gòu)造。利用這種籠統(tǒng)接口,可以將MiniGUI方便地移植到其它方便地移植到其它POSIX系統(tǒng)上。系統(tǒng)上。 普通嵌入式普通嵌入式Linux操作系統(tǒng)都具有操作系統(tǒng)都具有FrameBuffer的支持,的支持,所以針對(duì)特定嵌入式設(shè)備,只需求編寫輸入引擎所以針對(duì)特定嵌入式設(shè)
33、備,只需求編寫輸入引擎IAL即可。即可。 23第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.6.2 IAL 8.6.2 IAL引擎的開發(fā)引擎的開發(fā) 以以44鍵盤為例,引見鍵盤為例,引見IAL引擎的開發(fā)。引擎的開發(fā)。 F (轉(zhuǎn)轉(zhuǎn)換換) E (TAB) D (SPACE) C (CTL) B A 9 (左左) 8 (ALT) 7 6 (上上) 5 4 (下下) 3 (ESC) 2 1 (右右) 0 (回回車車) BOOL InitADSInput (INPUT* input, const char* mdev, const char* mtype)/只讀方式翻開鍵盤設(shè)備
34、只讀方式翻開鍵盤設(shè)備 kbd_fd = open (/dev/Kbd7279, O_RDONLY); if ( kbd_fd update_mouse = mouse_update; input-get_mouse_xy = mouse_getxy; input-set_mouse_xy = NULL; input-get_mouse_button = mouse_getbutton; input-set_mouse_range = NULL; input-update_keyboard = keyboard_update; input-get_keyboard_state = keyboar
35、d_getstate; input-set_leds = NULL; input-wait_event = wait_event; mousex = 0; mousey = 0; return TRUE;24第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡(jiǎn)介簡(jiǎn)介 MiniGUI在在Linux下運(yùn)轉(zhuǎn)環(huán)境的建立下運(yùn)轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動(dòng)的啟動(dòng) MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序上運(yùn)轉(zhuǎn)簡(jiǎn)單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運(yùn)用上的仿真運(yùn)用 25第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.7.1 MiniGUI 8.7.1 MiniGUI的根本繪圖函數(shù)的根本繪圖函數(shù) void GUIAPI SetPixel(HDC hdc, int x, int y, gal_pixel c); /設(shè)定像素值設(shè)定像素值 void GUIAPI SetPixelRGB(HDC hdc, int x, int y, int r, int g, int b); /設(shè)定像素設(shè)定像素RGB值值 gal_p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 可穿戴醫(yī)療設(shè)備在皮膚癌監(jiān)測(cè)中的市場(chǎng)增長(zhǎng)策略研究報(bào)告
- 2025屆內(nèi)蒙古呼倫貝爾市海拉爾區(qū)鐵路第三中學(xué)英語(yǔ)八下期中達(dá)標(biāo)測(cè)試試題含答案
- 2025年家具行業(yè)個(gè)性化定制生產(chǎn)綠色生產(chǎn)市場(chǎng)前景報(bào)告
- 2025年元宇宙時(shí)代基礎(chǔ)設(shè)施建設(shè):區(qū)塊鏈技術(shù)深度應(yīng)用案例分析報(bào)告
- 2025年元宇宙社交平臺(tái)用戶參與度提升策略研究
- 2025年元宇宙社交平臺(tái)虛擬現(xiàn)實(shí)與虛擬現(xiàn)實(shí)房地產(chǎn)游戲化應(yīng)用創(chuàng)新研究報(bào)告
- 2025年元宇宙社交平臺(tái)虛擬現(xiàn)實(shí)社交平臺(tái)技術(shù)融合與創(chuàng)新趨勢(shì)報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化提升醫(yī)療數(shù)據(jù)質(zhì)量深度報(bào)告
- 金融機(jī)構(gòu)數(shù)字化轉(zhuǎn)型下風(fēng)險(xiǎn)管理的智能化與自動(dòng)化報(bào)告001
- 2025屆內(nèi)蒙古烏蘭察布市化德縣英語(yǔ)八下期末考試模擬試題含答案
- 寶媽日常心理護(hù)理
- 2025年社會(huì)學(xué)概論測(cè)試題含答案(附解析)
- 安全檢查作業(yè)行為規(guī)范與專業(yè)知識(shí) -改
- 學(xué)校信息化建設(shè)十五五規(guī)劃方案
- 2025年保險(xiǎn)專業(yè)知識(shí)能力測(cè)試題及答案
- 小學(xué)民法典主題班會(huì)教案
- 水利工程隱患排查課件
- 辦公軟件實(shí)操試題及詳細(xì)答案
- 米粉項(xiàng)目可行性分析報(bào)告
- T/CEPPEA 5023-2023風(fēng)光儲(chǔ)充一體化充電站設(shè)計(jì)規(guī)范
- 腰痛中醫(yī)護(hù)理查房
評(píng)論
0/150
提交評(píng)論