基于基于ARM Linux的的Gameboy模拟器移植和优化研究模拟器移植和优化研究
本文构建了一个基于ARM920T嵌入式Linux的实验平台环境, gnuboy作为一种虚拟机,应用到这样的嵌入式环境
中遇到的问题具有一定的代表性,最需要解决的问题是速度问题,针对于此,本文实现了它在所构建的平台上的移植
和一些优化研究。
引言
面向
目前,ARM L inux支持包括ARM610、A RM710、ARM720T cores、
Gameboy是目前比较流行的8位掌上游戏机,通常被简称为GB,它的最终态Game Boy Color (GBC)是完全向后兼容的。
Gnuboy是GB /GBC的软件模拟器,是一种自由软件,它是基于Qt系统的,能够运行几乎所有的黑白和彩色的GB /GBC游戏ROM,
但运行复杂一些的游戏需要在速度上得到加强,同时它的声音还没有得到测试。
Gnuboy已经实现了i386汇编代码的一些优化工作,能够在奔腾机器上运行良好,除此之外,到目前为止,它能够运行的平台还
很有限。随着嵌入式系统设计技术的发展,PDA、Smartphone等嵌入式产品的功能不断地得到扩展,适应用户的需要, Gnuboy在
嵌入式产品中的移植应用非常具有前景。目前Gnuboy在ARM
硬件环境
本实验测试板采用Motorola公司的MX1 Lite,系统的主要模块有处理器内核模块、用户接口模块、连接设备模块等,如图1所
示,下面分别进行介绍。
1)处理器内核模块采用v4T体系结构的ARM920T 内核拥有16K的指令缓存和16K的数据缓存; 外部接口模块提供了最多6 个片
选信号来访问外部设备,其中连接的12Kx16bits的NOR Flash 经过配置用于系统启动; SDRAM 控制器提供了对使用32Mx32bits
的SDRAM的访问控制。
2)用户接口模块由于MX1 L ite没有模拟信号处理模块,无法直接接收触摸屏的输入,所以本系统采用了TI的TSC2301芯片来
支持触摸屏的输入功能,它与主芯片通过连续外设接口协议连接,它不仅可以接收触摸屏的输入,而且它还支持声音数模转换和输
入输出等功能; LCD 控制器用于给外部液晶显示屏提供显示数据,LCD采用了Sharp 的20x240 HR - TFT LCD,它支持触摸屏输
入,分辨率为320x240。
3)连接设备模块包含有多媒体卡/数字安全主机控制模块、内存棒控制器和智能卡接口,以此来连接用于外部存储的多媒体
卡。
Gnuboy软件结构和一些工具软件
Gnuboy是基于Qt系统的,可从图2中看出它和整个系统的关系。本文构建的基于ARM920T的嵌入式L inux平台下采用的是
嵌入式系统的QT 版本: QT/Embedded 和Qtop ia(QPE) ,这有助于模拟器的移植。
QT/Embedded和Qtopia
QT/Embedded和Qtopia是著名的QT库开发商TrollTech开发的基于Framebuffer、面向嵌入式系统的QT版本。它的特点是
界面美观、色彩配比好,使用与QT/Windows和QT/X11 完全一致的AP I接口,许多基于QT的程序可以非常方便地移植到嵌入式
系统。Qtopia 包括了全套的个人信息管理PIM,如地址本、日程安排、游戏、配置工具等。QT/Embedded实现了对下层输入设
备的驱动和底层图形接口以及各基类和AP I,它在编译后生成函数库被应用程序调用。Qtopia也是以客户/服务器的方式,通过消
息机制来管理各种应用程序。图3描述了QT应用程序的执行方式及系统结构,其中X Server是核心。