版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 嵌入式系統(tǒng)課程設(shè)計報告</p><p> 題目: 基于嵌入式系統(tǒng)的開源游戲模擬器的設(shè)計 </p><p> 20 12– 2013 第1學(xué)期</p><p> 院 系: 電子通信工程系 </p><p> 姓 名: </p><p> ?! I(yè):
2、 </p><p> 學(xué) 號: </p><p> 指導(dǎo)老師: </p><p><b> 電子通信工程系</b></p><p><b> 2012年11月制</b></p>
3、;<p><b> 目 錄</b></p><p> 目 錄- 2 -</p><p> 一、引言- 3 -</p><p> 二、設(shè)計目的- 3 -</p><p> 三、設(shè)計要求- 3 -</p><p> 1.任務(wù)要求- 3 -</p
4、><p> 2.設(shè)計所需的軟硬件設(shè)備- 3 -</p><p> 3.課程設(shè)計報告內(nèi)容- 4 -</p><p> 四、總體設(shè)計- 4 -</p><p> 1.Visual Boy Advance模擬器簡介- 4 -</p><p> 2.安裝交叉編譯工具- 4 -</p>&
5、lt;p> 3.ZLIB數(shù)據(jù)壓縮庫的安裝、編譯- 5 -</p><p> 4.編譯、安裝Libpng圖像庫- 6 -</p><p> 5.SDL多媒體函數(shù)庫- 6 -</p><p> 6.編譯與安裝VBA模擬器- 7 -</p><p> 7.VisualBoyAdvance的調(diào)試與運行- 9 -&l
6、t;/p><p> 五、總結(jié)- 9 -</p><p> 六、參考文獻- 10 -</p><p><b> 引言</b></p><p> 隨著微處理器性能的提升,現(xiàn)在的微處理器已經(jīng)可以支撐游戲模擬器的運行,用戶可以選擇在非PC平臺下操作街機游戲以及20世紀(jì)90年代需要PC才能運行的游戲節(jié)目,這無疑提升了游
7、戲硬件平臺的移動性。電子游戲業(yè)將是這一技術(shù)的最大收益者。目前,在一個配有LCD圖形界面和32位ARM微處理器的移動平臺上,甚至可以實現(xiàn)最早出現(xiàn)在PC上的3D游戲,本文介紹利用ARM嵌入式系統(tǒng)平臺(內(nèi)置S3C2410A核心微處理器),將開源游戲模擬器Visual Boy Advance(VBA)的代碼移植到微處理器上的方法。</p><p><b> 設(shè)計目的</b></p>
8、<p> 了解嵌入式微處理器的運算能力,進一步熟悉ARM S3C2410微處理器在多媒體娛樂平臺中的應(yīng)用。該設(shè)計的目標(biāo)是在一個配有LCD圖形界面和32位ARM微處理器的嵌入式系統(tǒng)平臺(內(nèi)置S3C2410A核心微處理器)上,將開源游戲模擬器Visual Boy Advance(VBA)的代碼移植到微處理器上運行。</p><p> 在設(shè)計過程中,熟悉Linux系統(tǒng)中常用的壓縮解縮工具包、圖形工具包、多
9、媒體函數(shù)庫等的使用方法,從而為基于嵌入式系統(tǒng)平臺的多媒體開發(fā)任務(wù)打下更深厚的應(yīng)用實踐基礎(chǔ)。</p><p><b> 設(shè)計要求</b></p><p><b> 任務(wù)要求</b></p><p> 要求能獨立地分析題目意義、設(shè)計實現(xiàn)步驟、畫出硬件原理圖及軟件流程圖、調(diào)試驅(qū)動模塊。</p><p&g
10、t; 該設(shè)計的具體要求如下:</p><p> ?。?)掌握ZLIB數(shù)據(jù)壓縮庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握libpng圖像庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握SDL多媒體函數(shù)庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握開源模擬器VBA的編譯與安裝方法。</p>
11、<p> ?。?)掌握開源模擬器VBA的調(diào)試與運行。</p><p> ?。?)理解VBA程序的設(shè)計(選做)。</p><p> 設(shè)計所需的軟硬件設(shè)備</p><p><b> ?。?)硬件環(huán)境配置</b></p><p> 計算機:Intel(R) Pentium(R) 及以上</p>
12、<p><b> 內(nèi)存:1GB及以上</b></p><p> 實驗設(shè)備:UP-NETARM2410-S嵌入式開發(fā)平臺</p><p><b> (2)軟件環(huán)境配置</b></p><p> 操作系統(tǒng):Microsoft Windows XP Professional Service Pack 2<
13、/p><p> 虛擬機:VMware WorkStation 7</p><p> Linux系統(tǒng):Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)</p><p> 嵌入式交叉編譯器:arm-linux-gcc 3.4.1版本</p><p> ZLIB數(shù)據(jù)壓縮庫:ZLIB-1.2.3</p&g
14、t;<p> Libpng圖像庫:Libpng-1.4.0</p><p> SDL多媒體函數(shù)庫:sdl-1.2.13</p><p> VBA模擬器:VisualBoyAdvance-src-1.7.2</p><p><b> 課程設(shè)計報告內(nèi)容</b></p><p> 按該設(shè)計報告要求的模式
15、格式提交課程設(shè)計報告書。</p><p><b> 總體設(shè)計</b></p><p> Visual Boy Advance模擬器簡介</p><p> 開源游戲模擬器VBA是一個根據(jù)GUN General Public License發(fā)布的免費軟件。VBA能夠在不同的硬件平臺上模擬Nintendo公司發(fā)行的手提游戲機,包括Game Bo
16、y、Super Game Boy、Game Boy Color、Game Boy Advance以及Game Boy Advance ROMS。</p><p><b> 安裝交叉編譯工具</b></p><p> 交叉開發(fā)方式解決了目標(biāo)硬件資源有限,無法在本機運行編譯和調(diào)試工具的問題,并且還得使開發(fā)者可以在熟悉的宿主機環(huán)境下進行程序開發(fā),對于ARM嵌入式系統(tǒng)的開
17、發(fā),需要安裝交叉版本的GCC工具包來搭建嵌入式交叉編譯環(huán)境,在此,使用arm-linux-gcc-3.4.1.tgz軟件包。</p><p> 下載arm-linux-gcc-3.4.1.tgz軟件壓縮包,將其存放在Linux系統(tǒng)中的/tmp目錄下,然后進入/tmp目錄,執(zhí)行如下命令進行文件解壓縮:</p><p> [root@localhost ~]# cd /tmp</p&
18、gt;<p> [root@localhost tmp]# tar -xzvf arm-linux-gcc-3.4.1.tgz -C /</p><p> 運行上述命令后把arm-linux-gcc安裝到/usr/local/arm/3.4.1目錄。</p><p> 運行下面命令修改/root/.bashrc文件的內(nèi)容:</p><p> [
19、root@localhost ~]# vi /root/.bashrc 編輯/root/.bashrc文件,將最后一行改為如圖1劃線標(biāo)示所示,修改后保存退出。</p><p> 圖1 修改/root/.bashrc文件的內(nèi)容</p><p> 重新登錄系統(tǒng),使上述設(shè)置生效,用以下命令行測試:</p><p> [root@localhost ~]# arm-
20、linux-gcc –v</p><p> 若出現(xiàn)如圖2所示gcc version 3.4.1則說明交叉編譯環(huán)境已經(jīng)安裝完畢且3.4.1版本的交叉編譯環(huán)境可以正常運行了。</p><p> 圖2 交叉編譯工具的版本信息</p><p> ZLIB數(shù)據(jù)壓縮庫的安裝、編譯</p><p> ZLIB是一個免費、通用的開源代碼,提供數(shù)據(jù)的壓
21、縮與解壓縮開發(fā)庫,而且還支持跨平臺的應(yīng)用。ZLIB具有同winzip和winrar等商業(yè)軟件相比毫不遜色的壓縮率,已經(jīng)成功應(yīng)用到諸如MySQL、Java、3DMax、甚至是微軟的DirectX等大型的系統(tǒng)中。</p><p> ZLIB雖然支持文件的壓縮、解壓縮、刪除與查看等功能,但主要是對Linux/Unix下的GZ文件進行相應(yīng)的操作,對于Windows系統(tǒng)下的ZIP文件并不提供直接的支持,這里使用ZLIB的
22、版本是1.3.2。</p><p> 在命令終端窗口中,切換路徑到/home/ilovechina/GBA/下,解壓縮zlib-1.2.3.tar.gz軟件包,運行下面的命令:</p><p> [root@localhost ~]# cd /home/ilovechina/GBA/</p><p> [root@localhost GBA]# tar -xz
23、vf zlib-1.2.3.tar.gz</p><p> 在zlib-1.2.3目錄中,運行如下的配置命令,可以得到Makefile文件:</p><p> [root@localhost GBA]# cd zlib-1.2.3</p><p> [root@localhost zlib-1.2.3]# ./configure </p><
24、;p> --prefix=/usr/local/arm/3.4.1/arm-linux</p><p> 使用編輯器修改產(chǎn)生的Makefile文件,從而達到能夠利用交叉編譯工具對zlib的源代碼進行編譯與安裝,修改參數(shù)如下:</p><p> 第19行修改為:CC=arm-linux-gcc</p><p> 第36行修改為:AR=arm-linux-
25、ar rc</p><p> 第37行修改為:RANLIB=arm-linux-ranlib</p><p> 在前面的步驟中已經(jīng)將預(yù)先處理的各項都進行了設(shè)置,現(xiàn)在可以運行下列命令開始編譯、安裝zlib軟件包:</p><p> [root@localhost zlib-1.2.3]# make;make install </p><p&g
26、t; 編譯、安裝Libpng圖像庫</p><p> Libpng提供多種應(yīng)用程序解析PNG格式圖像時使用的開發(fā)庫,該軟件包含png庫和libpng-configlib文件,其中,PNG庫是用來創(chuàng)立和操作PNG格式的圖像文件。PNG格式是設(shè)計來替代的GIF的,PNG對于更小范圍的TIFF來說,有了非常多的進步和拓展。libpng-configlib文件為libpng提供了設(shè)置信息。</p>&l
27、t;p> 解壓縮libpng-1.4.0.tar.gz軟件包,在命令終端窗口切換路徑到/home/ilovechina/GBA/下,運行的命令如下:</p><p> [root@localhost zlib-1.2.3]# cd ..</p><p> [root@localhost GBA]# tar -xzvf libpng-1.4.0.tar.gz</p>
28、<p> 在libpng-1.4.0目錄中,運行如下配置命令,可以得到Makefile文件:</p><p> [root@localhost GBA]# cd libpng-1.4.0</p><p> [root@localhostlibpng-1.4.0]# </p><p> export LDFLAGS=-L/usr/arm/3.4
29、.1/arm-linux/lib</p><p> [root@localhostlibpng-1.4.0]# </p><p> export CFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include</p><p> [root@localhost libpng-1.4.0]# ./configure</p&g
30、t;<p> --prefix=/usr/local/arm/3.4.1/arm-linux</p><p> --host=arm-linux</p><p> Makefile文件生成之后,在前面預(yù)先處理的各項的相應(yīng)設(shè)置后,下面就可以編譯安裝libpng軟件包了,所需要運行的命令如下:</p><p> [root@localhost zl
31、ib-1.2.3]# make;make install</p><p><b> SDL多媒體函數(shù)庫</b></p><p> SDL(Simple DirectMedia Layer)現(xiàn)在廣泛應(yīng)用與游戲、游戲SDK、模擬器、MPEG播放器和其他眾多的軟件設(shè)計領(lǐng)域。特別是,SDL在游戲開發(fā)領(lǐng)域已經(jīng)得到了廣泛的認(rèn)可,許多著名的游戲都用到了SDL開發(fā)包。SDL是一個
32、跨平臺的多媒體函數(shù)庫,支持對底層的音頻,鼠標(biāo),鍵盤,游戲桿,基于OPENGL的3D硬件以及2D圖像幀緩沖區(qū)的訪問。另外,SDL幾乎支持現(xiàn)在所有的平臺:Linux、Windows、WindowsCE、BeOS、MacOS、Mac OS X、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、IRIX以及QNX等。</p><p> SDL在音頻處理、視頻處理、事件響應(yīng)、線程管理、數(shù)據(jù)流處理
33、、定時器等方面都有比較突出的功能。</p><p> 在終端命令窗口中,切換到/home/ilovechina/GBA/路徑下,解壓縮SDL-1.2.13.tar.gz軟件包,運行如下命令:</p><p> [root@localhost libpng-1.4.0]# cd ..</p><p> [root@localhost GBA]# tar –xzv
34、f SDL-1.2.13.tar.gz得到SDL-1.2.13文件夾;</p><p> 在生成的SDL-1.2.13目錄中,運行如下配置命令,就可以得到Makefile文件:</p><p> [root@localhost GBA]# cd SDL-1.2.13</p><p> [root@localhost SDL-1.2.13]# ./config
35、ure </p><p> --prefix=/usr/local/arm/3.4.1/arm-linux --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom</p&
36、gt;<p> --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux</p><p> --enable-video-fbcon</p><p> 在前面的步驟中已經(jīng)將需要預(yù)處理的各項都進行了相應(yīng)的設(shè)置處理,現(xiàn)在可以編譯、安裝SDL軟件包了,運行如下命令即可:</p>
37、<p> [root@localhost SDL-1.2.13]# make;make install</p><p> 編譯與安裝VBA模擬器</p><p> 切換路徑到/home/ilovechina/GBA/目錄下,開始運行如下命令解壓縮游戲模擬器VisualBoyAdvance-src-1.7.2.tar.gz軟件包:</p><p>
38、[root@localhost SDL-1.2.13]# cd ..</p><p> [root@localhost GBA]# tar –xzvf VisualBoyAdvance-1.7.2.tar.gz</p><p> 這樣在/home/ilovechina/GBA/下得到VisualBoyAdvance-1.7.2文件夾。</p><p> Vis
39、ualBoyAdvance-1.7.2目錄下,運行如下配置命令,可以得到Makefile文件:</p><p> [root@localhost GBA]# cd VisualBoyAdvance-1.7.2</p><p> [root@localhost VisualBoyAdvance-1.7.2]# ./configure --host=arm-linux</p>
40、<p> --target=arm-linux</p><p> --with-sdl-prefix=/usr/local/arm/3.4.1/arm-linux</p><p> --with-sdl-exec-prefix=/usr/local/arm/3.4.1/arm-linux</p><p> 在/home/ilovechina/GB
41、A/VisualBoyAdvance-1.7.2/src/sdl/SDL.cpp文件中分別從第2323行、第3381行開始,有如下的相同代碼:</p><p> surface = SDL_SetVideoMode(destWidth, destHeight, 16,</p><p> SDL_ANYFORMAT|SDL_HWSURFACE|SDL_DOUBLEBUF|</p&g
42、t;<p> (fullscreen ? SDL_FULLSCREEN : 0));</p><p> 將其修改為surface = SDL_SetVideoMode(640,480,16,1),其中640*480表示LCD的分辨率,如果不修改這段代碼,在ARM9開發(fā)板上運行VBA時將可能會提示video模式無法設(shè)置,也可能出現(xiàn)屏幕不正常顯示的情況。</p><p>
43、保存上述修改,并退出對SDL.cpp文件的編輯。</p><p> 在前面的步驟中已經(jīng)將需要的預(yù)處理的各項都進行了相應(yīng)的設(shè)置,現(xiàn)在可以開始編譯、安裝VisualBoyAdvance軟件包了,運行如下命令:</p><p> [root@localhost VisualBoyAdvance-1.7.2]# make;make install</p><p> 在
44、編譯、安裝VisualBoyAdvance軟件包之后,可以在VisualBoyAdvance-1.7.2/src/sdl/目錄下看到在arm平臺運行的兩個文件:TestEmu,VisualBoyAdvance,如圖3所示,</p><p> 圖3 編譯得到的VisualBoyAdvance文件</p><p> 另外,在其上一級目錄下有一個VisualBoyAdvance.cfg配置文
45、件,如圖4所示</p><p> 圖4 VisualBoyAdvance.cfg配置文件</p><p> VisualBoyAdvance的調(diào)試與運行</p><p> 首先,將TestEmu、VisualBoyAdvance及VisualBoyAdvance.cfg這3個文件同時下載到ARM9開發(fā)板根文件系統(tǒng)的/home/ziapc/目錄下,然后編寫或下載
46、一個GBA游戲,同樣下載到開發(fā)板的根文件系統(tǒng)的/home/ziapc/目錄下;</p><p> 接著添加vba-over.ini文件,將其下載到開發(fā)板中根文件系統(tǒng)的/home/ziapc/目錄內(nèi),再次運行模擬器程序,注意開發(fā)板網(wǎng)串口中斷上輸出的信息;</p><p> 上一步提示VBA運行時缺少libSDL-1.2.so.0共享庫文件,該文件是一個指向libSDL-1.2.so.01
47、1.2共享庫文件的鏈接文件,它們都位于/usr/local/arm/3.4.1/arm-linux/lib目錄下,將它們下載到開發(fā)板根文件系統(tǒng)中的/home/ziapc/目錄里;</p><p> 最后,再次在ARM9開發(fā)板上運行VBA游戲模擬器即可運行起來。在LCD顯示屏上出現(xiàn)游戲畫面。</p><p><b> 總結(jié)</b></p><p&
48、gt; 課程設(shè)計中還是學(xué)到了不少東西的。在整個設(shè)計過程中,需要用到arm-linux-gcc-3.4.1版本的嵌入式交叉編譯環(huán)境,ZLIB數(shù)據(jù)壓縮庫、libpng圖像庫、SDL多媒體函數(shù)庫以及主要的VisualBoyAdvance-src-1.7.2開源代碼包,上述軟件包有一定的版本匹配關(guān)系,交叉編譯環(huán)境必須使用3.4.1版本的交叉編譯器,且不能與3.4.4版本的同時運行,在開始安裝VBA模擬器之前一定要確認(rèn)版本是否正確。下面列出在設(shè)
49、計過程中遇到的問題:</p><p> 由于虛擬機中的Linux系統(tǒng)之前已經(jīng)配置了3.4.4版本的交叉編譯環(huán)境,在上機做課程設(shè)計時,要刪除其配置環(huán)境,具體做法:刪除/usr/local/bin/目錄下的所有文件,再次參照上述步驟配置交叉編譯環(huán)境;</p><p> 進行過ZLIB數(shù)據(jù)壓縮庫,libpng圖像庫,SDL多媒體函數(shù)庫之后,在編譯與安裝VBA模擬器時,按照書中配置命令無法生成
50、Makefile文件,需要按照:</p><p> [root@localhost VisualBoyAdvance-1.7.2]# ./configure --host=arm-linux</p><p> --target=arm-linux</p><p> --with-sdl-prefix=/usr/local/arm/3.4.1/arm-linux
51、</p><p> --with-sdl-exec-prefix=/usr/local/arm/3.4.1/arm-linux</p><p> 命令,使運行過程能夠找到SDL配置文件,另外,編譯過程可能不能找到SDL.h文件,需要在SDL.cpp文件中修改SDL.h的絕對路徑;</p><p> 編譯、安裝VBA軟件包過程較長,在命令終端中有長時間的停頓,這
52、是正常情況,直至生成所需要的三個目標(biāo)文件。</p><p> 通過嵌入式實驗和游戲模擬器的設(shè)計,我更深刻地認(rèn)識了Linux操作系統(tǒng)在嵌入式設(shè)計方面的強大功能,初步認(rèn)識了嵌入式在人們?nèi)粘蕵飞钪械淖饔?,這些都是最基礎(chǔ)的內(nèi)容,之后還有更為深入的內(nèi)容要學(xué)習(xí),例如嵌入式Linux設(shè)備驅(qū)動程序的開發(fā)、用戶圖形界面的設(shè)計等高深知識。過程的實際操作發(fā)現(xiàn)了很多問題,這是平時理論學(xué)習(xí)無法遇到的,大家共同努力去克服和解決,獲益匪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 嵌入式課程設(shè)計-- 基于嵌入式系統(tǒng)的傳感器環(huán)境檢測
- 嵌入式課程設(shè)計---嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)
- 嵌入式課程設(shè)計
- 嵌入式課程設(shè)計
- arm嵌入式系統(tǒng)課程設(shè)計-基于嵌入式系統(tǒng)的煙氣檢測監(jiān)控系統(tǒng)
- 嵌入式觸摸屏課程設(shè)計---arm嵌入式系統(tǒng)
- 嵌入式課程設(shè)計
- 嵌入式課程設(shè)計
- 嵌入式課程設(shè)計
- 嵌入式課程設(shè)計
- 嵌入式課程設(shè)計--基于arm嵌入式圖像處理系統(tǒng)設(shè)計與實現(xiàn)
- 嵌入式系統(tǒng)綜述課程設(shè)計
- 課程設(shè)計---嵌入式系統(tǒng)項目設(shè)計
- 《嵌入式系統(tǒng)設(shè)計》課程設(shè)計報告
- 嵌入式課程設(shè)計報告---嵌入式文件鎖應(yīng)用
- 嵌入式課程設(shè)計--計算器
- 嵌入式系統(tǒng)課程設(shè)計---音樂播放器
- 基于嵌入式led顯示課程設(shè)計
- 嵌入式系統(tǒng)開發(fā)設(shè)計課程設(shè)計
- 基于嵌入式的無線點菜系統(tǒng)課程設(shè)計
評論
0/150
提交評論