位置:51电子网 » 技术资料 » 嵌入式系统

基于ARM Linux的Gameboy模拟器移植和优化研究

发布时间:2008/5/27 0:00:00 访问次数:627

  摘要: mx1体系结构采用arm920t内核,针对它构建嵌入式linux平台,把gameboy模拟器(以下统一称为gnuboy)移植过去;对gnuboy的源代码进行修改,在宿主平台上交叉编译,编译好的可执行文件烧入测试板上运行,这是移植的过程;gnuboy在嵌入式环境下面临速度慢的问题,可以对原先的一些c函数用arm汇编改写来加快速度,这里用到基于图着色技术的寄存器分配算法的一种简化方法,用这种方法对gnuboy源代码中的几个函数进行了优化处理,优化效果可用相应的工具软件进行测试;这些移植和优化研究工作,目的是为了把gnuboy应用到基于arm linux的嵌入式产品中,同时对研究该平台下一般的虚拟机技术应用也有相应的价值。

  关键词:嵌入式系统;模拟器;移植;优化

 引言

  面向a r m微处理器构架的嵌入式操作系统的使用量这些年持续增长,在各种嵌入式操作系统中, l inux是获得支持最多的第三大力量。

  目前,arm l inux支持包括arm610、a rm710、arm720t cores、arm920t cores、strongarm 110、strongarm1100、xscale等系列的arm处理器。gameboy是目前比较流行的8位掌上游戏机,通常被简称为gb,它的最终态game boy color (gbc)是完全向后兼容的。gnuboy是gb /gbc的软件模拟器,是一种自由软件,它是基于qt系统的,能够运行几乎所有的黑白和彩色的gb /gbc游戏rom,但运行复杂一些的游戏需要在速度上得到加强,同时它的声音还没有得到测试。

  gnuboy已经实现了i386汇编代码的一些优化工作,能够在奔腾机器上运行良好,除此之外,到目前为止,它能够运行的平台还很有限。随着嵌入式系统设计技术的发展,pda、smartphone等嵌入式产品的功能不断地得到扩展,适应用户的需要, gnuboy在嵌入式产品中的移植应用非常具有前景。目前gnuboy在arm linux下还没有得到很好的应用,本文就是在构建的基于arm920t linux的嵌入式平台上对gnuboy运用进行的尝试性工作,同时, gnuboy作为一种虚拟机技术,本文的工作对研究虚拟机技术在arm l inux中的应用也具有一定的价值。

 硬件环境

  本实验测试板采用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是核心。

 一些工具软件
  移植前需要在宿主机上建立arm 的交叉编译环境,主要用到的开发工具包括三个部分: binutils、gcc、glibc。

  ● binutils — 用于操作二进制文件的实用程序集合,包括诸如汇编器as、二进制转换工具( objdump、objcopy) 等这样的实用程序;
  ● gcc — gnuc编译器(c编译器gcc和c + +编译器g +

  摘要: mx1体系结构采用arm920t内核,针对它构建嵌入式linux平台,把gameboy模拟器(以下统一称为gnuboy)移植过去;对gnuboy的源代码进行修改,在宿主平台上交叉编译,编译好的可执行文件烧入测试板上运行,这是移植的过程;gnuboy在嵌入式环境下面临速度慢的问题,可以对原先的一些c函数用arm汇编改写来加快速度,这里用到基于图着色技术的寄存器分配算法的一种简化方法,用这种方法对gnuboy源代码中的几个函数进行了优化处理,优化效果可用相应的工具软件进行测试;这些移植和优化研究工作,目的是为了把gnuboy应用到基于arm linux的嵌入式产品中,同时对研究该平台下一般的虚拟机技术应用也有相应的价值。

  关键词:嵌入式系统;模拟器;移植;优化

 引言

  面向a r m微处理器构架的嵌入式操作系统的使用量这些年持续增长,在各种嵌入式操作系统中, l inux是获得支持最多的第三大力量。

  目前,arm l inux支持包括arm610、a rm710、arm720t cores、arm920t cores、strongarm 110、strongarm1100、xscale等系列的arm处理器。gameboy是目前比较流行的8位掌上游戏机,通常被简称为gb,它的最终态game boy color (gbc)是完全向后兼容的。gnuboy是gb /gbc的软件模拟器,是一种自由软件,它是基于qt系统的,能够运行几乎所有的黑白和彩色的gb /gbc游戏rom,但运行复杂一些的游戏需要在速度上得到加强,同时它的声音还没有得到测试。

  gnuboy已经实现了i386汇编代码的一些优化工作,能够在奔腾机器上运行良好,除此之外,到目前为止,它能够运行的平台还很有限。随着嵌入式系统设计技术的发展,pda、smartphone等嵌入式产品的功能不断地得到扩展,适应用户的需要, gnuboy在嵌入式产品中的移植应用非常具有前景。目前gnuboy在arm linux下还没有得到很好的应用,本文就是在构建的基于arm920t linux的嵌入式平台上对gnuboy运用进行的尝试性工作,同时, gnuboy作为一种虚拟机技术,本文的工作对研究虚拟机技术在arm l inux中的应用也具有一定的价值。

 硬件环境

  本实验测试板采用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是核心。

 一些工具软件
  移植前需要在宿主机上建立arm 的交叉编译环境,主要用到的开发工具包括三个部分: binutils、gcc、glibc。

  ● binutils — 用于操作二进制文件的实用程序集合,包括诸如汇编器as、二进制转换工具( objdump、objcopy) 等这样的实用程序;
  ● gcc — gnuc编译器(c编译器gcc和c + +编译器g +

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!