講義文稿分析_第1頁(yè)
講義文稿分析_第2頁(yè)
講義文稿分析_第3頁(yè)
講義文稿分析_第4頁(yè)
講義文稿分析_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Mini6410上移植SDL(本手冊(cè)適用Copyright?2007-2010FriendlyARMAllrights 本手冊(cè)由廣州友善之臂計(jì)算機(jī)科技(簡(jiǎn)稱“友善之臂”)創(chuàng)建和,并作為標(biāo)準(zhǔn)用戶手冊(cè)的可以在中反饋你所遇到的問(wèn)題和疑問(wèn),在以后的更新中修正或者采納您的建議,本手冊(cè)主要以Mini6410上運(yùn)行,非常適合喜歡動(dòng)手的用戶進(jìn)行練習(xí)和參考,用戶可以參考此文檔,移植其它的SDL接口的游戲到Mini6410與大家,在學(xué)習(xí)的同時(shí)享受游戲所帶來(lái)的樂(lè)趣。Mini6410是一款十分精致的低價(jià)高品質(zhì)ARM11開(kāi)發(fā)板,由廣州友善之臂設(shè)計(jì)、生產(chǎn)和銷售。它采用三星S3C6410作為主處理器,在設(shè)計(jì)上承襲了Mini2440“精于心,簡(jiǎn)于形”的風(fēng)格,而且布也可適用于高校教學(xué)、嵌入式培訓(xùn)、個(gè)人研究學(xué)習(xí)和DIY等。Tiny6410是由友善之臂的一款以ARM11(三星S3C6410)作為主處理器的嵌入式板,它664x50mm128MDDRRAM,256M/1GBSLCNandFlash器,采用5V供電,在板實(shí)現(xiàn)CPU必需的各種電壓轉(zhuǎn)換,還帶有專業(yè)復(fù)位,通過(guò)2.0mm間距的排針,引出各種常見(jiàn)的接口資源,以供不打算自行設(shè)計(jì)CPU板的開(kāi)發(fā)者進(jìn)行快捷的二次開(kāi)發(fā)使用。因?yàn)镸ini6410Tiny6410的硬件接口和資源都是基本相同的,所以本手冊(cè)完全適用開(kāi)發(fā)板為了方便用戶,本手冊(cè)的所用到的軟件包放在光盤A的“開(kāi)檔和\專題03Mini6410上移SDL游戲的詳細(xì)步驟\源代碼”下,用戶可以不需要自已去文檔和\專題03Mini6410上移植SDL游戲的詳細(xì)步驟\Bin”,使用方法請(qǐng)參考文件夾內(nèi)的readme.txt說(shuō)明文件,同時(shí)也提供了現(xiàn)成可燒寫的ROM,位于光B的“Images\Games”下。(友善之臂公司:本手冊(cè)由ARM9之家(

)發(fā)布,請(qǐng)注明出處,手冊(cè)內(nèi)難免有遺漏和足之處,歡迎大家提出寶貴意見(jiàn),請(qǐng)發(fā)郵件至:qt 本手冊(cè)內(nèi)容參考了mini6410用戶bluedrum大俠編寫的關(guān)于仙劍移植的博客,文章.html更新說(shuō) .-1 錄.........................................................................................................................................................-4第一章MINI6410和TINY6410開(kāi)發(fā)板簡(jiǎn)介6--第二章什么是SDL9第三 準(zhǔn)備工作.............................................................................................................................................-10-安裝交叉編譯器-說(shuō)明-第四 移植SDL運(yùn)行庫(kù)到MINI6410上.........................................................................................................-12----庫(kù)-第五章移植《仙劍奇?zhèn)b傳》到MINI641016-------《超級(jí)(SUPERMARIOWAR)》是什么游戲?................................................................-26交叉編譯《超級(jí)(SUPERMARIOWAR)》........................................................................-27在MINI6410上部署《超級(jí) .-28第七章游戲?.........................................................................................................................................-30第一章mini6410和tiny6410開(kāi)發(fā)板簡(jiǎn)Mini6410開(kāi)發(fā)售。它采用三星S3C6410作為主處理器,在設(shè)計(jì)上承襲了Mini2440“精于心,簡(jiǎn)于形”的風(fēng)格,而且布設(shè)備;也可適用于高校教學(xué)、嵌入式培訓(xùn)、個(gè)人研究學(xué)習(xí)DIY等。具體而言,Mini6410具有雙LCD接口、4線電阻觸摸屏接口、100M標(biāo)準(zhǔn)網(wǎng)絡(luò)接口、標(biāo)準(zhǔn)DB9五線串口、MiniUSB2.0-OTG接口、USBHost1.1、3.5mm音頻輸出口、在板麥克風(fēng)、TV-OUT接口、彈出式SD、紅外接收等常用接口;另外還引出4路TTL串口、CMOSCamera接口、40pin總線接口、30pinGPIO口(可復(fù)用為SPII2C中斷等3ADC1DACSDIO2口SDWiFi)、10pinJtag接口等;在板的還有蜂鳴器、I2C-EEPROM、備份電池、AD可調(diào)電阻、8按鍵(可引出)、4LED等;所有這些,都極大地方便了開(kāi)發(fā)者的評(píng)估和使用,再加上我們按照Mini6410尺寸專門定制的4.3"LCD模塊,真正做到“一手掌握所有我們還充分地發(fā)揮了6410SD卡啟動(dòng)這一特性,使用我們精心研制的superboot,無(wú)需連接電腦,只要把目標(biāo)文件拷貝到SD卡中(可支持大于2G速大容量卡),你就可以在開(kāi)發(fā)板上極快極簡(jiǎn)單在SD卡上直接運(yùn)行它們,這一切,簡(jiǎn)直太酷了!要了解Mini6410開(kāi)發(fā)板的詳細(xì)信息,請(qǐng):Tiny6410Tiny6410是一款以ARM11(三星S3C6410)作為主處理器的嵌入式板,該CPU基于ARM1176JZF-S核設(shè)計(jì),內(nèi)部集成了強(qiáng)大的多處理單元,支持Mpeg4,H.264/H.263等格式的文件硬件編,可同時(shí)輸出至LCD和TV顯示它還并帶有3D圖形硬件,以實(shí)現(xiàn)OpenGLES1.12.0加速渲染,另外它還支持2D圖形圖像的平滑縮放,翻轉(zhuǎn)等操作Tiny6410用高密6層板設(shè)計(jì),尺寸為64x50mm,它集成128MDDRRAM,256M/1GBSLCNandFlash器,采用5V供電,在板實(shí)現(xiàn)CPU必需的各種電壓轉(zhuǎn)換,還帶有專業(yè)復(fù)位,通過(guò)2.0mm的排針,引出各種常見(jiàn)的接口資源,以供不打算自行設(shè)計(jì)CPU板的開(kāi)發(fā)者進(jìn)行快捷的二次開(kāi)標(biāo)準(zhǔn)DB9五線串口、MiniUSB2.0接口、USBHost1.1、3.5mm音頻輸入輸出口、TV-OUT接口、SD紅外接收等常用接口;另外還引出4路TTL串口,另1路TV-OUTSDIO2接口(可接SDWiFi)接口等;在板的還有蜂鳴器、I2C-EEPROM、備份電池、AD可調(diào)電阻、8個(gè)中斷式按鍵等。在布局上安排上盡量考慮把常用尺LCD模塊能夠固定在底7”LCD等,這樣用戶在使用時(shí)不至于把各種電線攪在一起,更增加了開(kāi)發(fā)套件的便攜性電腦,只要把目標(biāo)文件拷貝到SD中(可支32G高速大容量卡),你就可以在開(kāi)發(fā)板上極快就可以在SD卡上直接運(yùn)行它們!要了解Tiny6410開(kāi)發(fā)板的詳細(xì)信息,請(qǐng):第二章什么是SDL(SimpleDirectMediaLayer)是一套開(kāi)放源代碼的跨平臺(tái)多開(kāi)發(fā)庫(kù),使用C語(yǔ)言寫成。SDLSDL使用GNU寬通用公共證為方式,意指動(dòng)態(tài)(dynamiclink)其庫(kù)并不需要開(kāi)放本身的源代碼。因此諸如《雷神之錘4(Quake4)等商業(yè)游戲也使用SDL來(lái)開(kāi)發(fā)。SDL時(shí)常被比較為‘跨平臺(tái)的DirectX’,然而事實(shí)上SDL是定位成以精簡(jiǎn)的方式來(lái)完成基礎(chǔ)的功則需搭配OpenGLOpenALAPI來(lái)達(dá)成。另外它本身也沒(méi)有方便創(chuàng)建圖形用戶界面的函數(shù)。SDL在結(jié)構(gòu)上是將不同操作系統(tǒng)的庫(kù)再包裝成相同的函數(shù),例如SDL在Windows平臺(tái)上其實(shí)是DirectXDirectX5,現(xiàn)時(shí)的版本(SDL1.2)DirectX7X11的平臺(tái)上(包括Linux,SDL則是與Xlib庫(kù)溝通來(lái)輸出圖像。SDL庫(kù)分為、Audio、CD-ROM、Joystick和Timer等若干子系統(tǒng),除此之外,還有一些單獨(dú)的擴(kuò)充函數(shù)庫(kù)。這些提供,并包含在文檔中,共同組成了SDL的“標(biāo)準(zhǔn)庫(kù)”:SDL_image—支持時(shí)行的圖像格式:BMP、PPM、XPM PCX、GIF、JPEG、PNG、TGASDL_mixer—輸出函數(shù)以及格式支持SDL_net—網(wǎng)絡(luò)支持SDL的:第三章準(zhǔn)備工安裝友善之臂提供的mini6410交叉編譯器燒寫Linux系統(tǒng)的Image到開(kāi)發(fā)板安裝的“安裝并設(shè)置Fedora9"章節(jié)。安裝交叉編譯從光盤上拷貝mini6410上的交叉編譯器到/opt下,目前的mini6410交叉編譯器是arm-linux-gcc-v6- .tgz,如果你的mini6410A光盤中的版本比較舊,建議先從友善之#cd#tarxvzf/opt/arm-linux-gcc-v6-在光盤上找到交叉編譯后,將其拷到 /opt下,#cd#tarxvzf/opt/arm-linux-gcc-v6-交叉編譯器會(huì)解壓到 下,現(xiàn)在將編譯器路徑添加##export#arm-linux-gcc-執(zhí)行以下命令能成功顯示編譯器版本信息表明編譯器已#arm-linux-gcc-燒寫Linux系統(tǒng)的Image到開(kāi)發(fā)寫用于Linux系統(tǒng)的Images。不會(huì)燒寫的讀者,請(qǐng)參考友善之臂提供的光盤上的mini6410用戶手冊(cè)本手冊(cè)所移植的兩個(gè)游戲《仙劍奇?zhèn)b傳》和《超級(jí)(SuperMarioWar)》要進(jìn)行暢玩的話,47《超級(jí)支持,但需要?jiǎng)t需要USB鍵盤才能玩,而且,《超級(jí)(SuperMarioWar)》不支持4寸屏。第四 移植SDL運(yùn)行庫(kù)到Mini6410Mini6410上,另外還需要iconv庫(kù) 下找到以下文件,并拷貝到/tmp IconvSDL-SDLSDL_image-SDL_imageSDL_ttf-SDL_ttfSDL_mixer-SDL_mixer#mkdir–p在 下創(chuàng) games來(lái)作為我們本次移植工作的工#mkdir–p#cd#mkdir #cd#mkdir編譯iconv#cdlibiconv-1.13.1#make#make編譯SDL##cd#tarxvzf/tmp/SDL-1.2.14.tar.gz#cdSDL-1.2.14-photon---dummy---ggi---nanox--svga---------#make#make--dga--disable-arts--disable-esd--disable--fbcon--host=arm-linux--編譯SDL_image##cd#cdSDL_image-1.2.8#LIBPNG_LIBS="-LDFLAGS="-L/opt/mini6410/games/output/lib-ljpeg-lts-lpng-liconv"#make#make編譯SDL_ttf#cd#cd#tarxvzf/tmp/SDL_ttf-2.0.9.tar.gz#cdSDL_ttf-2.0.9#./configure--host=arm-linux--prefix=/opt/mini6410/games/output--enable-shared--enable---disable---with-freetype-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-LDFLAGS="-L/opt/mini6410/games/output/lib-lSDL-lts-liconv-lfreetype"#vi在編譯之前手工修改Makefile,去掉OpenGL相#viCFLAGS=-g-O2-I/usr/include/freetype2--D_GNU_SOURCE=1-D_REENTRANT-I/usr/include-定位到123行,將CFLAGS=-g-O2-I/usr/include/freetype2--D_GNU_SOURCE=1-D_REENTRANT-I/usr/include-GL_LIBSGL_LIBS=-L/usr/lib-再定GL_LIBSGL_LIBS=-L/usr/lib-glfont_LDADD=libSDL_ttf.la-glfont_LDADD=libSDL_ttf.laglfont_LDADD=libSDL_ttf.la-glfont_LDADD=libSDL_ttf.la-L/usr/lib-lGL-#viglfont.c清空源代碼文件glfont.c中的源代碼(先刪除,再用#viglfont.c在vi編輯器中輸入以下內(nèi)容并保voidvoidmain()##make最好,輸入命##make編譯SDL_mixer#cd#cd#cdSDL_mixer-1.2.9 #make#make將SDL庫(kù)部置到Mini6410#cd#cd#tarcvzfsdl_setup.tar.gzbinlib@#cd@#tarxvzf@#cd@#tarxvzf第五章移植《仙劍奇?zhèn)b傳》到《仙劍奇?zhèn)b傳》是RPG1995年7月出片以來(lái),即在各種游戲的榜中名列前茅,至1996年10月為止,已蟬聯(lián)14劇。如今,仙劍系列作《仙劍奇?zhèn)b傳五》正由軟星科技()接手研發(fā)。游戲開(kāi)發(fā)工具、模擬器、樣本演示、多應(yīng)用等。交叉編譯《仙劍奇?zhèn)b傳 下找到以下文件,并拷貝到/tmp sdlpal-仙劍奇?zhèn)b傳非SDL版本的源 #cd#cd#cdsdlpal/修改 更改屏幕分辯wScreenWidth=wScreenHeight=fFullScreen?480:用文本編輯器打開(kāi)wScreenWidth=wScreenHeight=fFullScreen?480:改if(wScreenWidth>640||wScreenHeight>480){wScreenWidth=wScreenHeight=}再定位到439行,在main函數(shù)前面,插入以下函數(shù),該函數(shù)用于動(dòng)態(tài)獲取屏幕分辨#include<stdio.h>#include#include<stdio.h>#include<string.h>#includevoidvoidgetFBSize(int*w,intchar*w=*h=if(!file){returnintif(sscanf(buf,"%d,%d",&tmp1,&tmp2)==2)*w=*h=return;修改Makefile通過(guò)對(duì)主Makefile的分析,實(shí)際編譯動(dòng)作是nbproject/Makefile-Debug.mk來(lái)實(shí)現(xiàn)的,因此,用文本編輯器打開(kāi)文件nbproject/Makefile-Debug.mk,進(jìn)行如下修改:14行的RANLIB=ranlib改成RANLIB=arm-linux-15行的CC=gcc改成CC=arm-linux-16行的CCC=g++CCC=arm-linux-g++17CXX=g++改成CXX=arm-linux-g++將65行的CFLAGS=`sdl-config--cflags`改成CFLAGS="-68行的CCFLAGS=`sdl-config--cflags`改成CCFLAGS=69行的CXXFLAGS=`sdl-config--cflags`改成CXXFLAGS=82行的${LINK.cc}`sdl-configlibs`XlinkerMap=dist/Debug/GNU-Linux-x86/sdlpal.mapodist/Debug/GNU-Linux-x86/sdlpal${OBJECTFILES}${LDLIBSOPTIONS}改為${LINK.cc}-L/opt/mini6410/games/output/lib-lfreetype-liconv-lmad-lz-ljpeg-lpng--lSDL_image-lSDL_ttf-lSDL-Xlinker-Map=dist/Debug/GNU-Linux-x86/sdlpal.map-osdlpal_arm${OBJECTFILES}把所有GNU-Linux-x86替換成GNU-Linux-把所有的- 替換成-提醒:提醒:如果修改不成功,或者覺(jué)得修改太麻煩光盤A中的檔 \專題修改input.c如果你是用USB鍵盤來(lái)操作游戲,則可直接跳過(guò)這個(gè)步修復(fù)北通神鷹 C036)手柄的按鍵問(wèn)BOOLkeyDown={case//MovedBOOLkeyDown={case//Movedanaxison//printf("PAL_JoystickEventFilter:lpEvent->jaxis.axis:%d:jaxis.value:%d\n",lpEvent->jaxis.axis,lpEvent->jaxis.value);if(lpEvent->jaxis.axis==0)if(lpEvent->jaxis.value==32767&&g_InputState.dir!=kDirSouth&&g_InputState.dir{if(g_InputState.dir!={g_InputState.dwKeyPress|=}g_InputState.dir=kDirEast;}

{if(g_InputState.dir!={g_InputState.dwKeyPress|=}g_InputState.dir=kDirWest;}

elseif(lpEvent->jaxis.value==255&&g_InputState.dir!=kDirEast&&g_InputState.dir{if(g_InputState.dir!={g_InputState.dwKeyPress|=}g_InputState.dir=kDirSouth;}

elseif(lpEvent->jaxis.value==0&&g_InputState.dir!=kDirEast&&g_InputState.dir{if(g_InputState.dir!={g_InputState.dwKeyPress|=}}{

g_InputState.dir=kDirNorth;g_InputState.dirg_InputState.dir=}}case//Pressedthejoystickswitch(lpEvent->jbutton.button&{caseg_InputState.dwKeyPress|=kKey caseg_InputState.dwKeyPress|=}}義為操作方向,參考紅色字體標(biāo)出的代碼,例如,當(dāng)lpEvent->jaxis.value==32767時(shí),方向是向右。可參考上一個(gè)章節(jié)對(duì)北通神鷹手柄的修改,根據(jù)lpEvent->jaxis.value傳過(guò)來(lái)的鍵值,重新轉(zhuǎn)義為游戲所==/opt/mini6410/games/SDL- 下,文件名 testjoystick.c,使用以下命令交叉編譯這個(gè)程序##arm-linux-gcctestjoystick.c-otestjoystick-@#./testjoystick@#./testjoystick表示釋放的,我們只取按下的值即可(如圖中的32767),如下圖所示:/項(xiàng)都選中(前面打*),然后重新編譯并燒寫內(nèi)核試試。輸入make執(zhí)行#make在 下執(zhí)行#make編譯完成后,在 下會(huì)生成可執(zhí)行文件sdlpal_arm在 上部署《仙劍奇?zhèn)b傳光有可執(zhí)行文件還不能運(yùn)行游戲,還需要《仙劍奇?zhèn)b傳》原版的資源文件,Mini6410光盤A中的“開(kāi)檔和\專題03Mini6410上移植SDL游戲的詳細(xì)步驟\源代碼”下找到以下文件,并拷貝到/tmp下備用:#mkdir-poutput_pal/#cdoutput_pal#tarxvzf #mkdir-poutput_pal/#cdoutput_pal#tarxvzf將會(huì)在 下生成 #cd#cp../sdlpal/sdlpal_arm接著,把我們編譯出來(lái)的仙劍#cd#cp../

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論