![SDL系列游戲在ARM上移植的實(shí)現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/24/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a1.gif)
![SDL系列游戲在ARM上移植的實(shí)現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/24/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a2.gif)
![SDL系列游戲在ARM上移植的實(shí)現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/24/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a3.gif)
![SDL系列游戲在ARM上移植的實(shí)現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/24/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a4.gif)
![SDL系列游戲在ARM上移植的實(shí)現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/24/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a/ec82e3d1-6638-4c73-b9e0-2d457fc2bf1a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程考核大作業(yè)課程名稱:嵌入式技術(shù)任課教師:學(xué)期:2016-2017學(xué)年第1學(xué)期成績«SDL系列游戲在ARM上移植的實(shí)現(xiàn)院 系專 業(yè)班 級提交時間:2016年 11月 12日SDL系列游戲在ARMk移植的實(shí)現(xiàn)湖北省武漢,430070摘要:在現(xiàn)在,年輕人喜歡通過玩游戲來放松自己,娛樂自己。許多人會選擇到電玩廳游戲廳放松 自己。因此,我研究并使用 FriendlyARM實(shí)現(xiàn)一個簡易的SDL系列仙劍奇?zhèn)b傳一的移植,使其 能夠通過鍵盤運(yùn)行游戲。完成這個游戲移植同時需要嵌入式硬件知識和軟件知識。硬件方面主要是燒寫SD卡,將linux鏡像文件安裝到嵌入式設(shè)備上,修改分辨率;軟件方面主要是移植游戲
2、和SDL游戲庫,設(shè)置開機(jī)自啟動。并且,因?yàn)橐浦苍砗唵畏奖?,可以以此為模板移植到一些大型設(shè)備上,比如電玩廳的游戲機(jī),以此獲得商業(yè)利益。關(guān)鍵詞:SDL系列游戲;ARMS植The Realization of SDL Series Game Porting on ARMAbstract: In the present, young people like to play through the game to relax and entertain themselves. Many people choose to relax in the arcade game room. Therefore,
3、 I study and use FriendlyARM to achieve a simple SDL series "Paladin" transplant, so that it can run the game through the keyboard. Completing this game migration requires both embedded hardware knowledge and software knowledge. Hardware is the main programming SD card, the linux image fil
4、e installed on the embedded device, modify the resolution; software is mainly transplant games and SDL game library, set the boot from the start. And, because the transplant principle is simple and convenient, you can use this as a template to transplant to some large equipment, such as video game c
5、onsole, in order to obtain commercial interests.Keywords: SDL series of games; ARM transplantation1實(shí)驗(yàn)的主要工作SDL游戲移植基本原理,1 . 了解linux操作系統(tǒng),熟悉各種基礎(chǔ)指令代碼;了解熟悉移植過程;了解 ARMM件軟件操作。通過之前的學(xué)習(xí),我基本上學(xué)會了所有l(wèi)inux基本代碼,能夠獨(dú)立編寫出移植過程中的 全部代碼;我了解至iJ SDL游戲有SDL_mixer聲音庫、SDL_net網(wǎng)絡(luò)庫、SDL_ttf字體庫、SDL_rtf 圖像庫,移植游戲的時候必須也移植進(jìn)去;我了解到ARM上沒有運(yùn)行
6、操作系統(tǒng)、屏幕是A70長640寬480、cpu為512MHZ、內(nèi)存為256M ,我選擇了滿足硬件要求的仙劍奇?zhèn)b傳一作為本次移植對象,我選擇燒寫linux到開發(fā)板中。2 .進(jìn)行硬件相關(guān)操作,燒寫 SD卡;再燒寫linux的鏡像文件到開發(fā)板中;修改游 戲分辨率。我使用superboot工具燒寫SD卡,使其能夠進(jìn)行 SD-BOOT再修改燒寫linux的ini 配置文件,比如燒寫的系統(tǒng)名稱,ARMf幕是A70,燒寫格式是ubfi,使其適合FriendlyARM , 再燒寫linux 的鏡像文件到開發(fā)板中,方便之后軟件更容易移植;我了解到FriendlyARM屏幕分辨率為 640*480 ,并修改mai
7、n.c中的游戲分辨率參數(shù),并且編寫函數(shù)讓游戲動態(tài)獲 取分辨率。3 .進(jìn)行軟件操作,對 SDL庫以及游戲進(jìn)行交叉編譯;再將可執(zhí)行文件連同游戲一 起倒入ARMfc中;建立一個開機(jī)自啟動的腳本文件。軟件相關(guān) 操作我將五個游戲庫以及游戲下載,在電腦linux交叉編譯并打包,然后使用U盤將打包文件拷入開發(fā)板中,游戲不能直接運(yùn)行, 必須建立開機(jī)自啟動 shell腳本,并在腳本中引導(dǎo)游 戲啟動。2 FriendlyARM與SDL游戲的介紹1. FriendlyARM 概念FriendlyARM是一款以ARM11芯片(三星S3c6410)作為主處理器的嵌入式核心板,該 CPU基于 ARM1176JZF-S核設(shè)
8、計(jì),內(nèi)部集成了強(qiáng)大的多媒體處理單元,支持Mpeg4,H.264/H.263等格式的視頻文件硬件編解碼,可同時車出至LCD和TV顯示;它還并帶有 3D圖形硬件加速器,以實(shí)現(xiàn)OpenGL ES 1.1 & 2.0 加速渲染,另外它還支持2D圖形圖像的平滑縮放,翻轉(zhuǎn)等操作。FriendlyARM采用高密度 6層板設(shè)計(jì),尺寸為 64 x 50mm,它集成了 128M/256M DDR RAM , SLC NAND Flash(256M/1GB) 或 MLC NAND Flash(2GB)存儲 器,采用5V供電,在板 實(shí)現(xiàn)CPU必需的各種核心電壓轉(zhuǎn)換,還帶有專業(yè)復(fù)位芯片,通 過2.0mm間距的排
9、針,引出各種常見的接口資源,以供不打算自行設(shè)計(jì)CPU板的開發(fā)者進(jìn)行快捷的二次開發(fā)使用。Tiny6410SDK是采用FriendlyARM核心板的一款參考設(shè)計(jì)底板,它主要幫助開發(fā)者以 此 為參考進(jìn)行核心板的功能驗(yàn)證以及擴(kuò)展開發(fā)。該底板具有三 LCD接口、 4線電阻觸摸屏接口、100M 標(biāo)準(zhǔn)網(wǎng)絡(luò)接口、標(biāo)準(zhǔn) DB9五線串口、 Mini USB 2.0 接口、USB Host 1.1、3.5mm音頻輸入輸出口、標(biāo)準(zhǔn) TV-OUT接口、SD卡座、紅外接收等常用接口;另外還 引出4路TTL串口, 另1路TV-OUT、SDIO2接口(可接SD WiFi)接口等;在板的還 有蜂鳴器、I2C-EEPROM、備份
10、電池、AD可調(diào)電阻、8個中斷式按鍵等。 2. SDL系列游戲的基本介紹SDL ( Simple DirectMedia Layer )是一套開放源代碼的跨平臺多媒體開發(fā)庫,使用 C語言寫成。SDL提供了數(shù)種控制圖像、聲音、輸出入的函數(shù),讓開發(fā)者只要用相同或是相似 的代碼就可以開發(fā)出跨多個平臺(Linux、Windows、Mac OS X等)的應(yīng)用軟件。目前SDL多用于開發(fā)游戲、模擬器、媒體播放器等多媒體應(yīng)用領(lǐng)域。SDL在結(jié)構(gòu)上是將不同操作系統(tǒng)的庫再包裝成相同的函數(shù),例如SDL在 Windows平臺上其實(shí)是 DirectX的再包裝,舊版本包裝的是DirectX 5,現(xiàn)時的版本(SDL 1.2)則
11、是DirectX 7。而在使用 X11的平臺上(包括 Linux), SDL則是與 Xlib 庫溝通來輸出圖 像。SDL庫分為 Video、Audio、CD-ROM、Joystick和Timer等若干子系統(tǒng),除此之外, 還有一些單獨(dú) 的官方擴(kuò)充函數(shù)庫。這些庫由官方網(wǎng)站提供,并包含在官方文檔中,共同組 成了 SDL的“標(biāo)準(zhǔn)庫”:* SDL_image一支持時下流行的圖像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGAo* SDL_mixer 一更多的聲音輸出函數(shù)以及更多的聲音格式支持。* SDL_net 一網(wǎng)絡(luò)支持。* SDL_ttf -TrueType字體渲染支持。*
12、SDL_rtf 一簡單的 RTF渲染支持。3硬件部分實(shí)驗(yàn)內(nèi)容1 .閱讀產(chǎn)品說明書,了解 FriendlyARM的CPU®率,內(nèi)存大小,屏幕分辨率,預(yù)裝系 統(tǒng)。2 .因?yàn)橹笆菦]有任何系統(tǒng),不符合軟件要求,故燒寫適合 FriendlyARM的Linux 系統(tǒng)的鏡像文件到開發(fā)板中,在其中,我采用的是制作SD卡啟動盤的方式。3 . 制作SD卡啟動,通過superboot軟件將SD卡轉(zhuǎn)換為特殊的 SD卡啟動。4 . 將要燒寫的linux系統(tǒng)導(dǎo)入SD卡白Image目錄之下。5 .修改linux配置文件,編寫ini文件,找到"OS=',并改為"OS=Linux&quo
13、t;,保存 修改,取出SD卡插到開發(fā)板上。6 .上電開機(jī),將S1開關(guān)設(shè)置為“SD-BOOT啟動,同樣的“滴” 一聲開始,同樣的“滴 滴”兩聲后更新完畢,因?yàn)槲覀冎谱鞯腖inu映像文件比較大,燒寫時間比較長,整個過程1分鐘左右。7 .把開發(fā)板S2開關(guān)設(shè)置為“ NAND啟動,這時重啟系統(tǒng)就可以看到Linux 已經(jīng)被 安裝好,并且出現(xiàn)了校正界面。8.開機(jī)出現(xiàn)以下畫面,則燒寫linux成功,硬件部分基本完成。9.修改游戲的main.c文件,更改屏幕分其灣修改為長640,寬480大小,使其適合 FriendlyARM 大小;用文本編輯器打開 main.c文件,定位到 535/536行,將內(nèi)容: wScr
14、eenWidth = 640;wScreenHeight = fFullScreen ? 480 : 400;改成getFBSize(&wScreenWidth,&wScreenHeight);if(wScreenWidth>640|wScreenHeight>480) wScreenWidth=640; wScreenHeight = 480; 10.再定位到 main.c函數(shù)第439行,在main函數(shù)前面,插入以下函數(shù), 這個函數(shù)用于 動態(tài)獲取屏幕分辨率;#include <stdio.h>#include <string.h>#incl
15、ude <unistd.h>#include <stdlib.h>void getFBSize(int *w, int *h) char buf256;*w = 480;*h = 272;FILE *file=fopen("/sys/class/graphics/fb0/virtual_size","r");if (!file) return ;int tmp1=0,tmp2=0;if (fgets(buf, sizeof(buf), file) if (sscanf(buf, "%d,%d", &tm
16、p1, &tmp2) = 2) *w = tmp1;*h = tmp2; fclose(file);return ;11.接下來應(yīng)該需要修改其他配置文件,比如對手柄的支持,但是我使用鍵盤,故不展示細(xì)節(jié);4軟件部分實(shí)驗(yàn)內(nèi)容1 .我們首先需要在網(wǎng)上下載Fedora9,因?yàn)樗虚_發(fā)工作都是在Fedora9的Linux環(huán)境下進(jìn)行的,所以在開始之前,需要先在PC上安裝Fedora9o2 .建立交叉編譯環(huán)境,安裝好 Friendly 提供的mini6410交叉編譯器。3 .我們還需要在網(wǎng)上下載SDL/SDL_mixer/SDL_ttf/SDL_image 以及iconv五個庫,再將這五個庫放入 l
17、inux/tmp目錄之下,在/opt/FriendlyARM/mini6410目錄下創(chuàng)建目錄 games來作為移植工作的工作目錄,再在games目錄下創(chuàng)建一個 output目錄,用來存放編譯生成的可執(zhí)行文件或者類庫。4 .接下來編譯iconv/SDL/SDL_mixer/SDL_ttf/SDL_image 庫,因?yàn)檫@四個庫編譯方法類此,故以其中SDL庫為例。# cd /opt/FriendlyARM/mini6410/games# tar xvzf/tmp/SDL-1.2.14.tar.gz# cd SDL-1.2.14# ./configure -prefix=/opt/FriendlyAR
18、M/mini6410/games/output -disable-video-nanox -disable-video-qtopia -disable-video-photon -disable-video-ggi -disable-video-svga -disable-video-aalib -disable-video-dummy -disable-video-dga -disable-arts -disable-esd -disable-alsa -disable-video-x11 -disable-nasm -enable-joystick -enable-input-tslib
19、-enable-video-fbcon -host=arm-linux -build=i386 # make# make install5 .將SDL庫打包,為接下來操作做準(zhǔn)備,打包 SDL類庫和其它相關(guān)的類:6 .從網(wǎng)上下載仙劍奇?zhèn)b傳SDL版本源代碼,并將其拷貝到 /tmp目錄下。7 .解壓其源代碼,并且定位到源代碼的目錄,執(zhí)行編譯操作,在編譯完成后,會在 sdlpal目錄下會生成可執(zhí)行文件sdlpal_arm。8 .光有可執(zhí)行文件還不能直接運(yùn)行游戲,還需要上網(wǎng)找到相應(yīng)的仙劍奇?zhèn)b傳原版的資源文件,比如聲音、圖片等等,并拷貝到/tmp目錄下備用,我創(chuàng)建一個目錄output_pal 用于存放仙劍
20、的執(zhí)行文件和資源,然后將資源解壓到該目錄下,這將會在 /opt/FriendlyARM/mini6410/games/output_pal 目錄下生成 xianjian 目錄。9 .接下來,把編譯出來的仙劍可執(zhí)行文件拷到 /opt/FriendlyARM/mini6410/games/output_pal/bin/目錄下,并打包10 .將 xianjian_setup.tar.gz 和 sdl_setup.tar.gz 拷貝到 u 盤中,然后將 u 盤拷貝到 FriendlyARM 開發(fā)板上,在根目錄進(jìn)行解壓:11 .修改啟動項(xiàng)內(nèi)容,使其開機(jī)運(yùn)行run_xianjian.sh腳本將/etc/i
21、nit.d/rcS中以下內(nèi)容:/bin/qtopia & 修改為 /bin/run_xianjian.sh &12 .編寫 run_xianjian.sh 腳本在/bin下創(chuàng)建一個腳本 run_xianjian.sh# vi /bin/run_xianjian.sh在其中輸入:#!/bin/shexport SDL_NOMOUSE=1export LD_LIBRARY_PATH=/lib:/usr/lib:/xianjian/lib:$LD_LIBRARY_PATH cd /xianjian sdlpal_arm給腳本run_xianjian.sh加上可執(zhí)行權(quán)限:13 .重啟F
22、riendlyARM就可以進(jìn)入游戲,看到以下界面,則說明進(jìn)入游戲成功。5心得體會其實(shí),我自己是第一次使用嵌入式,之前只簡單學(xué)習(xí)過單片機(jī),對 ARM可以說在研究 生生涯之前完全沒有任何概念,許多ARM常見知識都不知道。當(dāng)初選擇它作為題目,一方面是因?yàn)閷τ螒虻南矏?,另一方面是因?yàn)槿鄙賥ifi等其他硬件,是在只有一塊嵌入式板子的情況下做出來選擇。為了完成這一份實(shí)驗(yàn)報(bào)告, 找了許多資料,雖然我自己做的以軟件為主, 比較簡單,但是我仍然感受到了它的復(fù)雜深奧。在實(shí)際操作中也遇到了各種不懂的難題,比如燒寫鏡像文件到開發(fā)板之中,我曾經(jīng)花費(fèi)幾個下午一無所獲,全都燒寫失敗,后來才發(fā)現(xiàn)是我自己編寫ini配置文件錯誤,每一次 ARM開機(jī)都因?yàn)槠聊蛔x取失敗,導(dǎo)致一直沒有開 機(jī)畫面。并且實(shí)驗(yàn)的最后一步,經(jīng)常出錯,開機(jī)之后沒有任何提示,后來才發(fā)現(xiàn)是修改開機(jī)啟動項(xiàng)時,由于linux系統(tǒng)保護(hù),復(fù)制命令沒有添加-f強(qiáng)制復(fù)制,不允許我修改開機(jī)啟動項(xiàng), 每次開機(jī)都是原來的啟動項(xiàng)而失敗。雖然過程很漫長,但是當(dāng)我看到仙劍這一款游戲啟動時, 還是覺得物有所值。6 結(jié)論通過查看學(xué)
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服務(wù)消費(fèi)券發(fā)放的科學(xué)實(shí)施方案
- 中國騎訂書項(xiàng)目投資可行性研究報(bào)告
- 2025年中國項(xiàng)目管理軟件市場前景預(yù)測及投資規(guī)劃研究報(bào)告
- 2025年霧化器裝飾燈項(xiàng)目可行性研究報(bào)告
- 中國螺旋輸粉機(jī)市場競爭格局及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025年度文化產(chǎn)業(yè)發(fā)展合同履行與知識產(chǎn)權(quán)保護(hù)擔(dān)保
- 2025年水性涂料水性色漿項(xiàng)目可行性研究報(bào)告
- 中國收費(fèi)采集器項(xiàng)目投資可行性研究報(bào)告
- 2025年度城市綠化與生態(tài)環(huán)境修復(fù)技術(shù)服務(wù)合同
- 低保申請書簡歷
- 詩詞寫作入門課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023版押品考試題庫必考點(diǎn)含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗(yàn)收規(guī)范檢驗(yàn)批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評估報(bào)告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會
- 七年級英語下冊閱讀理解10篇
- 設(shè)計(jì)質(zhì)量、進(jìn)度保證措施
評論
0/150
提交評論