SDL的AT91 arm linux平台交叉编译
由于需要希望能够把SDL交叉编译到我的AT91 armlinux平台上,经过一番折腾最后成功在AT91SAM9261EK上运行了SDL步骤如下:<br /><br /> 1.下载SDL-1.2.13.tar.gz <br /><br /> 2. 解压缩<br /><br /> 3. 运行配置<br /><br /> ./configure --prefix=/home/xinlian/rootfs/home/sdl --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon<br /><br /> 配置中指定使用帧缓冲设备,使用arm-linux-gcc交叉编译,编译后的库和头文件安装路径是/home/xinlian/rootfs/home/sdl<br /><br /> 4. 运行make进行编译<br /><br /> 5. 测试,编译demo<br /><br /> 进入test目录运行configue<br /><br /> 修改Makefile的编译选项如下:<br /><br /> CC = arm-linux-gcc<br /> EXE =<br /> CFLAGS = -g -O2 -I/home/xinlian/rootfs/home/sdl/include/SDL -D_GNU_SOURCE=1 - D_REENTRANT -DHAVE_OPENGL LIBS = -L/home/xinlian/rootfs/home/sdl/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread<br /><br /> 6. 拷贝demo到板子运行ok<br /><br /> 7. 编译时还遇到一个PAGE_SIZE没有定义的错误提示,但是在内核的头文件里有定义,只是<br /><br /> sdl是应用没有办法引用,我是直接 写作 0x1000。<br />好,楼上的辛苦了
呀 SDL是什么东东啊?
SDL就是这个,在2210上也早就移植好了,
**************************<br />* 用SMARTARM2200玩魂斗罗 *<br />**************************<br /> 2009/03/20 asdjf@163.com www.armecos.com<br /> <br /> <b>图1 魂斗罗(任天堂FC红白机游戏)</b><br /> <img src="https://bbs.21ic.com/upfiles/img/20093/20093202852866.gif"><br /> <br /> <b>图2 魂斗罗(任天堂FC红白机游戏)</b><br /> <img src="https://bbs.21ic.com/upfiles/img/20093/2009323182319782.gif"><br /> <br /> <b>图3 魂斗罗(任天堂FC红白机游戏)</b><br /> <img src="https://bbs.21ic.com/upfiles/img/20093/2009323182427551.gif"><br /> <br /> <b>图4 魂斗罗(任天堂FC红白机游戏)</b><br /> <img src="https://bbs.21ic.com/upfiles/img/20093/2009323182449135.gif"><br /> <br /> <b>图5 魂斗罗(任天堂FC红白机游戏)</b><br /> <img src="https://bbs.21ic.com/upfiles/img/20093/200932318255498.gif"><br /> <br /> 键盘按键和仿真游戏手柄对应关系<br /> <br /> 键盘按键 仿真游戏手柄<br /> 数字小键盘 2 B<br /> 数字小键盘 3 A<br /> 回车/换行Enter Start<br /> Tab键 Select<br /> Z 向下<br /> W 向上<br /> A 向左<br /> S 向右<br /> <br /> 嵌入式虚拟机研究<br /> <br /> 如果想在SMARTARM2200上玩魂斗罗,必须将SMARTARM2200虚拟成一个6502的系统,这样,游戏卡里面的bin二进制格式程序就能在异构的ARM体系上直接运行了。<br /> <br /> 与此类似,我们完全可以仿照这个思路,在ARM上运行51虚拟机,这样,用C51编译出的二进制机器代码直接就可以在ARM上运行,此时,ARM就相当于一个超级51单片机。举一反三,可以在POWERPC上跑ARM虚拟机,我们能够用开发ARM的思路开发POWERPC系统。当然,堆叠也是可行的,在POWERPC上跑ARM虚拟机,再在ARM虚拟机上跑51虚拟机,也就是说,间接地把POWERPC变成一个51单片机。<br /> <br /> 使用虚拟机有什么好处呢?最大的好处就是“一次编译,到处执行!”只需要编译一次,就可以在各种体系架构上运行,避免了重复劳动。<br /> <br /> 对,这就是java的思想,而且java的安全性更加出色。我们也完全可以在ARM上实现一个java虚拟机,这样,数量众多的java程序(例如:java游戏)就可以直接在ARM上运行了。<br /> <br /> CPU的工作原理简单说就是:取指、译码、执行。我们可以用软件模拟这个过程,由此实现的功能就是虚拟机。在虚拟机上调试可是太方便了,比任何调试仿真工具都全面,因为你可以轻易地获取任何你想要的信息,相当于把探针插入到了CPU内核,而这个虚拟CPU的任何细枝末节你都能够了如指掌,还有什么程序调试不了呢!<br /> <br /> 任天堂FC红白机由:音频、视频、输入设备(游戏摇杆、按键、光电枪等)、6502主CPU等构成。<br /> <br /> 音频先不支持,因为SMARTARM2200没有现成的IIS接口,需要外扩,比较麻烦。<br /> 视频直接使用现成的GUI和虚拟桌面模拟。<br /> 输入设备使用虚拟桌面的鼠标、键盘模拟。<br /> 使用虚拟机执行6502指令集。<br /> <br /> 现在就可以用SMARTARM2200玩魂斗罗了。据说任天堂FC红白机有3000多款游戏,无法一一测试,只能选择有限的几种测试一下(偶可是熬夜才打通关的,呵呵)。虽然,速度很慢,没有实际意义,但是至少证明可以在ARM上运行6502的二进制程序,对于虚拟机的实现也有了思路,其实换个快些的CPU就能实际玩了。在此基础上,可以仿照实现一个51虚拟机,进行51指令集译码,这样,本站提供的ucos51多任务操作系统就可以直接使用keil C51编译,然后再在ARM上运行了。 顶顶顶顶顶顶顶顶 这个有参考价值
页:
[1]