uclinux上任天堂游戏模拟器移植
uclinux和linux的区别我就不用多说了,uclinux是专门为没有MMU的cpu而准备的。以下两点却别会影响到我们的移植。1.uclinux生成的目标文件格式是flat,可以在裸机上跑.uclinux和ARM7可能只能运行这种格式的程序,连接时需要加-elf2flat选项,否则是无法运行的,我们的开发板加上-Wl,-elf2flt="-s32768"即可2.arm-elf使用的库是ucli
·
uclinux和linux的区别我就不用多说了,uclinux是专门为没有MMU的cpu而准备的。以下两点却别会影响到我们的移植。
1.uclinux生成的目标文件格式是flat,可以在裸机上跑.uclinux和ARM7可能只能运行这种格式的程序,连接时需要加-elf2flat选项,否则是无法运行的,我们的开发板加上-Wl,-elf2flt="-s32768"即可
2.arm-elf使用的库是uclibc/uc-libc,而arm-linx使用的是glibc,故而在arm-elf的时候没有zlib的。所以要另外移植。
以上步骤和linux上差不多。
1.移植sdl,sdl的video其中之一的实现的方法是framebuffer,不巧的是我们的开发板LCD不支持framebuffer,而framebuffer也是QT,minigui移植的基础。麻烦就出来了,如果只是想移植游戏模拟器那大可抛弃SDL的video,自己另外写库。但是移植SDL是必要的,因为SDL还有其他的库是游戏模拟器所依赖的。
1)解压fceu
2)cd fceu
3)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure --disable-ipod --enable-video-fbcon --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install
4)make;make install
5)cd test
6)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install
PS1.test目录下有一些DEMO可以验证SDL是否移植成功,记得在链接的时候加上-Wl,-elf2flt="-s32768"。
PS2.--enable-video-fbcon,因为在./configure的时候,如果交叉编译器是arm-elf,是不会去检查fbcon,所以需要手动修改./configure,具体的需要修改哪里,我没有详细看过。你自己动手吧。因为我后来舍弃了SDL的VEDIO,所以没有去研究这个。
2.移植zlibc
export CC=arm-elf-gcc
./configure -shared --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/armutils_2.5.113.0/toolchain
make;make install
prefix是交叉编译器所在的目录,也可以是其他的目录,但是一定把相应的文件要copy到交叉编译器所在的目录。
3.移植fceu
去掉SDL关于video部分,用自己的板子上支持的输出方式,需要修改的文件是:
fceu/src/drivers/pc/sdl-video.c
fceu/src/drivers/pc/main.c
fceu/src/drivers/pc/input.c
./configure --host=arm-elf --with-sdl-prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/fceu/install
记得在链接的时候加上-Wl,-elf2flt="-s32768",修改makefile文件src/makefile在$link。。。。最后面加上即可。
make;make install
4.运行fceu
tftp -b 1368 -g -r fceu 172.18.128.84
tftp -b 1368 -g -r a.nes 172.18.128.84
tftp -b 1368 -g -r 1.jpg 172.18.128.84
chmod +x fceu
./fceu -sound 0 -xscale 1 -yscale 1 -inputcfg gamepad1 a.nes
1.uclinux生成的目标文件格式是flat,可以在裸机上跑.uclinux和ARM7可能只能运行这种格式的程序,连接时需要加-elf2flat选项,否则是无法运行的,我们的开发板加上-Wl,-elf2flt="-s32768"即可
2.arm-elf使用的库是uclibc/uc-libc,而arm-linx使用的是glibc,故而在arm-elf的时候没有zlib的。所以要另外移植。
以上步骤和linux上差不多。
1.移植sdl,sdl的video其中之一的实现的方法是framebuffer,不巧的是我们的开发板LCD不支持framebuffer,而framebuffer也是QT,minigui移植的基础。麻烦就出来了,如果只是想移植游戏模拟器那大可抛弃SDL的video,自己另外写库。但是移植SDL是必要的,因为SDL还有其他的库是游戏模拟器所依赖的。
1)解压fceu
2)cd fceu
3)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure --disable-ipod --enable-video-fbcon --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install
4)make;make install
5)cd test
6)NM=arm-elf-nm LD=arm-elf-ld CC=arm-elf-gcc CXX=arm-elf-g++ RANLIB=arm-elf-ranlib AR=arm-elf-ar ./configure --target=arm-elf --host=arm-elf --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install
PS1.test目录下有一些DEMO可以验证SDL是否移植成功,记得在链接的时候加上-Wl,-elf2flt="-s32768"。
PS2.--enable-video-fbcon,因为在./configure的时候,如果交叉编译器是arm-elf,是不会去检查fbcon,所以需要手动修改./configure,具体的需要修改哪里,我没有详细看过。你自己动手吧。因为我后来舍弃了SDL的VEDIO,所以没有去研究这个。
2.移植zlibc
export CC=arm-elf-gcc
./configure -shared --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/armutils_2.5.113.0/toolchain
make;make install
prefix是交叉编译器所在的目录,也可以是其他的目录,但是一定把相应的文件要copy到交叉编译器所在的目录。
3.移植fceu
去掉SDL关于video部分,用自己的板子上支持的输出方式,需要修改的文件是:
fceu/src/drivers/pc/sdl-video.c
fceu/src/drivers/pc/main.c
fceu/src/drivers/pc/input.c
./configure --host=arm-elf --with-sdl-prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/SDL-1.2.13/install --prefix=/home/hansonlu/resp/source/SVN_HighwayStar/game/fceu/install
记得在链接的时候加上-Wl,-elf2flt="-s32768",修改makefile文件src/makefile在$link。。。。最后面加上即可。
make;make install
4.运行fceu
tftp -b 1368 -g -r fceu 172.18.128.84
tftp -b 1368 -g -r a.nes 172.18.128.84
tftp -b 1368 -g -r 1.jpg 172.18.128.84
chmod +x fceu
./fceu -sound 0 -xscale 1 -yscale 1 -inputcfg gamepad1 a.nes
更多推荐
已为社区贡献2条内容
所有评论(0)