版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 嵌入式系統(tǒng)課程設計報告</p><p> 題目: 基于嵌入式系統(tǒng)的開源游戲模擬器的設計 </p><p> 20 12– 2013 第1學期</p><p> 院 系: 電子通信工程系 </p><p> 姓 名: </p><p> ?! I(yè):
2、 </p><p> 學 號: </p><p> 指導老師: </p><p><b> 電子通信工程系</b></p><p><b> 2012年11月制</b></p>
3、;<p><b> 目 錄</b></p><p> 目 錄- 2 -</p><p> 一、引言- 3 -</p><p> 二、設計目的- 3 -</p><p> 三、設計要求- 3 -</p><p> 1.任務要求- 3 -</p
4、><p> 2.設計所需的軟硬件設備- 3 -</p><p> 3.課程設計報告內容- 4 -</p><p> 四、總體設計- 4 -</p><p> 1.Visual Boy Advance模擬器簡介- 4 -</p><p> 2.安裝交叉編譯工具- 4 -</p>&
5、lt;p> 3.ZLIB數據壓縮庫的安裝、編譯- 5 -</p><p> 4.編譯、安裝Libpng圖像庫- 6 -</p><p> 5.SDL多媒體函數庫- 6 -</p><p> 6.編譯與安裝VBA模擬器- 7 -</p><p> 7.VisualBoyAdvance的調試與運行- 9 -&l
6、t;/p><p> 五、總結- 9 -</p><p> 六、參考文獻- 10 -</p><p><b> 引言</b></p><p> 隨著微處理器性能的提升,現在的微處理器已經可以支撐游戲模擬器的運行,用戶可以選擇在非PC平臺下操作街機游戲以及20世紀90年代需要PC才能運行的游戲節(jié)目,這無疑提升了游
7、戲硬件平臺的移動性。電子游戲業(yè)將是這一技術的最大收益者。目前,在一個配有LCD圖形界面和32位ARM微處理器的移動平臺上,甚至可以實現最早出現在PC上的3D游戲,本文介紹利用ARM嵌入式系統(tǒng)平臺(內置S3C2410A核心微處理器),將開源游戲模擬器Visual Boy Advance(VBA)的代碼移植到微處理器上的方法。</p><p><b> 設計目的</b></p>
8、<p> 了解嵌入式微處理器的運算能力,進一步熟悉ARM S3C2410微處理器在多媒體娛樂平臺中的應用。該設計的目標是在一個配有LCD圖形界面和32位ARM微處理器的嵌入式系統(tǒng)平臺(內置S3C2410A核心微處理器)上,將開源游戲模擬器Visual Boy Advance(VBA)的代碼移植到微處理器上運行。</p><p> 在設計過程中,熟悉Linux系統(tǒng)中常用的壓縮解縮工具包、圖形工具包、多
9、媒體函數庫等的使用方法,從而為基于嵌入式系統(tǒng)平臺的多媒體開發(fā)任務打下更深厚的應用實踐基礎。</p><p><b> 設計要求</b></p><p><b> 任務要求</b></p><p> 要求能獨立地分析題目意義、設計實現步驟、畫出硬件原理圖及軟件流程圖、調試驅動模塊。</p><p&g
10、t; 該設計的具體要求如下:</p><p> ?。?)掌握ZLIB數據壓縮庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握libpng圖像庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握SDL多媒體函數庫的功能以及編譯與安裝方法。</p><p> ?。?)掌握開源模擬器VBA的編譯與安裝方法。</p>
11、<p> ?。?)掌握開源模擬器VBA的調試與運行。</p><p> (6)理解VBA程序的設計(選做)。</p><p> 設計所需的軟硬件設備</p><p><b> (1)硬件環(huán)境配置</b></p><p> 計算機:Intel(R) Pentium(R) 及以上</p>
12、<p><b> 內存:1GB及以上</b></p><p> 實驗設備:UP-NETARM2410-S嵌入式開發(fā)平臺</p><p><b> ?。?)軟件環(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數據壓縮庫:ZLIB-1.2.3</p&g
14、t;<p> Libpng圖像庫:Libpng-1.4.0</p><p> SDL多媒體函數庫:sdl-1.2.13</p><p> VBA模擬器:VisualBoyAdvance-src-1.7.2</p><p><b> 課程設計報告內容</b></p><p> 按該設計報告要求的模式
15、格式提交課程設計報告書。</p><p><b> 總體設計</b></p><p> Visual Boy Advance模擬器簡介</p><p> 開源游戲模擬器VBA是一個根據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ā)方式解決了目標硬件資源有限,無法在本機運行編譯和調試工具的問題,并且還得使開發(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文件的內容:</p><p> [
19、root@localhost ~]# vi /root/.bashrc 編輯/root/.bashrc文件,將最后一行改為如圖1劃線標示所示,修改后保存退出。</p><p> 圖1 修改/root/.bashrc文件的內容</p><p> 重新登錄系統(tǒng),使上述設置生效,用以下命令行測試:</p><p> [root@localhost ~]# arm-
20、linux-gcc –v</p><p> 若出現如圖2所示gcc version 3.4.1則說明交叉編譯環(huán)境已經安裝完畢且3.4.1版本的交叉編譯環(huán)境可以正常運行了。</p><p> 圖2 交叉編譯工具的版本信息</p><p> ZLIB數據壓縮庫的安裝、編譯</p><p> ZLIB是一個免費、通用的開源代碼,提供數據的壓
21、縮與解壓縮開發(fā)庫,而且還支持跨平臺的應用。ZLIB具有同winzip和winrar等商業(yè)軟件相比毫不遜色的壓縮率,已經成功應用到諸如MySQL、Java、3DMax、甚至是微軟的DirectX等大型的系統(tǒng)中。</p><p> ZLIB雖然支持文件的壓縮、解壓縮、刪除與查看等功能,但主要是對Linux/Unix下的GZ文件進行相應的操作,對于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> 使用編輯器修改產生的Makefile文件,從而達到能夠利用交叉編譯工具對zlib的源代碼進行編譯與安裝,修改參數如下:</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> 在前面的步驟中已經將預先處理的各項都進行了設置,現在可以運行下列命令開始編譯、安裝zlib軟件包:</p><p> [root@localhost zlib-1.2.3]# make;make install </p><p&g
26、t; 編譯、安裝Libpng圖像庫</p><p> Libpng提供多種應用程序解析PNG格式圖像時使用的開發(fā)庫,該軟件包含png庫和libpng-configlib文件,其中,PNG庫是用來創(chuàng)立和操作PNG格式的圖像文件。PNG格式是設計來替代的GIF的,PNG對于更小范圍的TIFF來說,有了非常多的進步和拓展。libpng-configlib文件為libpng提供了設置信息。</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文件生成之后,在前面預先處理的各項的相應設置后,下面就可以編譯安裝libpng軟件包了,所需要運行的命令如下:</p><p> [root@localhost zl
31、ib-1.2.3]# make;make install</p><p><b> SDL多媒體函數庫</b></p><p> SDL(Simple DirectMedia Layer)現在廣泛應用與游戲、游戲SDK、模擬器、MPEG播放器和其他眾多的軟件設計領域。特別是,SDL在游戲開發(fā)領域已經得到了廣泛的認可,許多著名的游戲都用到了SDL開發(fā)包。SDL是一個
32、跨平臺的多媒體函數庫,支持對底層的音頻,鼠標,鍵盤,游戲桿,基于OPENGL的3D硬件以及2D圖像幀緩沖區(qū)的訪問。另外,SDL幾乎支持現在所有的平臺:Linux、Windows、WindowsCE、BeOS、MacOS、Mac OS X、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、IRIX以及QNX等。</p><p> SDL在音頻處理、視頻處理、事件響應、線程管理、數據流處理
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> 在前面的步驟中已經將需要預處理的各項都進行了相應的設置處理,現在可以編譯、安裝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模式無法設置,也可能出現屏幕不正常顯示的情況。</p><p>
43、保存上述修改,并退出對SDL.cpp文件的編輯。</p><p> 在前面的步驟中已經將需要的預處理的各項都進行了相應的設置,現在可以開始編譯、安裝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的調試與運行</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/目錄內,再次運行模擬器程序,注意開發(fā)板網串口中斷上輸出的信息;</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顯示屏上出現游戲畫面。</p><p><b> 總結</b></p><p&
48、gt; 課程設計中還是學到了不少東西的。在整個設計過程中,需要用到arm-linux-gcc-3.4.1版本的嵌入式交叉編譯環(huán)境,ZLIB數據壓縮庫、libpng圖像庫、SDL多媒體函數庫以及主要的VisualBoyAdvance-src-1.7.2開源代碼包,上述軟件包有一定的版本匹配關系,交叉編譯環(huán)境必須使用3.4.1版本的交叉編譯器,且不能與3.4.4版本的同時運行,在開始安裝VBA模擬器之前一定要確認版本是否正確。下面列出在設
49、計過程中遇到的問題:</p><p> 由于虛擬機中的Linux系統(tǒng)之前已經配置了3.4.4版本的交叉編譯環(huán)境,在上機做課程設計時,要刪除其配置環(huán)境,具體做法:刪除/usr/local/bin/目錄下的所有文件,再次參照上述步驟配置交叉編譯環(huán)境;</p><p> 進行過ZLIB數據壓縮庫,libpng圖像庫,SDL多媒體函數庫之后,在編譯與安裝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、是正常情況,直至生成所需要的三個目標文件。</p><p> 通過嵌入式實驗和游戲模擬器的設計,我更深刻地認識了Linux操作系統(tǒng)在嵌入式設計方面的強大功能,初步認識了嵌入式在人們日常娛樂生活中的作用,這些都是最基礎的內容,之后還有更為深入的內容要學習,例如嵌入式Linux設備驅動程序的開發(fā)、用戶圖形界面的設計等高深知識。過程的實際操作發(fā)現了很多問題,這是平時理論學習無法遇到的,大家共同努力去克服和解決,獲益匪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 嵌入式課程設計-- 基于嵌入式系統(tǒng)的傳感器環(huán)境檢測
- 嵌入式課程設計---嵌入式網絡視頻監(jiān)控系統(tǒng)
- 嵌入式課程設計
- 嵌入式課程設計
- arm嵌入式系統(tǒng)課程設計-基于嵌入式系統(tǒng)的煙氣檢測監(jiān)控系統(tǒng)
- 嵌入式觸摸屏課程設計---arm嵌入式系統(tǒng)
- 嵌入式課程設計
- 嵌入式課程設計
- 嵌入式課程設計
- 嵌入式課程設計
- 嵌入式課程設計--基于arm嵌入式圖像處理系統(tǒng)設計與實現
- 嵌入式系統(tǒng)綜述課程設計
- 課程設計---嵌入式系統(tǒng)項目設計
- 《嵌入式系統(tǒng)設計》課程設計報告
- 嵌入式課程設計報告---嵌入式文件鎖應用
- 嵌入式課程設計--計算器
- 嵌入式系統(tǒng)課程設計---音樂播放器
- 基于嵌入式led顯示課程設計
- 嵌入式系統(tǒng)開發(fā)設計課程設計
- 基于嵌入式的無線點菜系統(tǒng)課程設計
評論
0/150
提交評論