基于ARM的俄罗斯方块游戏的开发 下载本文

常州大学本科生毕业设计(论文)

为了降低整体系统成本,S3C2440A提供了一系列丰富的内部设备。S3C2440A采用了ARM920t的内核,0.13um的CMOS的标准宏单元和存储器单元。其低功耗,简单,优雅,且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构Advanced Micro controller Bus Architecture(AMBA)。

S3C2440A的杰出特点是其核心处理器(CPU),是一个由Advanced RISC Machines有限公司设计的16/32位ARM920T的RISC处理器。ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache。每个都是由具有8字长的行组成。通过提供一套完整的通用系统外设,S3C2440A减少整体系统成本和无需配置额外的组建。 2.1.2 开发板的选择

目前ARM开发板在市场上种类繁多,有多种型号与多家厂商可供选择,对于ARM的研究前提就是选择一个好的开发板来做开发和学习。Mini2440是一款真正低价实用的ARM9开发板,是目前国内性价比最高的一款学习板;它采用Samsung S3C2440为微处理器,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。mini2440的PCB采用沉金工艺的四层板设计,专业等长布线,保证关键信号线的信号完整性,生产采用机器贴片,批量生产;出厂时都经过严格的质量控制,配合用户手册,可以迅速掌握嵌入式 Linux和WinCE开发的流程,只要有C语言基础的人一般2周即可入门。目前提供的Linux和WindowsCE 5.0/6.0系统,在技术和功能上已经达到国内2440开发板中最高水平,它们各自的bootloader以及BSP均是100%开放的。

Mini2440开发板的硬件资源主要包含以下几个部分: (1)CPU 处理器

Samsung S3C2440A,主频400MHz,最高533Mhz 。 (2)SDRAM 内存

64M SDRAM和32位数据总线。 (3)FLASH 存储

均为掉电非易失的256M Nand Flash和2M Nor Flash。 (4)LCD 显示

标准配置为统宝3.5寸真彩 LCD屏,型号为W35,分辨率240x320,带触摸屏。

(5)接口和资源

主要配备了 1 个 100M 以太网RJ-45 接口(采用DM9000 网络芯片)、3 个串行口 、1 个USB Host 、1 个USB Slave B 型接口 、1 个 SD 卡存储接口 、系统时钟源和实时时钟等等。 (6)操作系统支持

第 5 页 共 30 页

常州大学本科生毕业设计(论文)

支持 Linux2.6.32.2 + Qtopia-2.2.0+QtE-4.6.1(独创双图形系统共存,无缝切换) 以及WindowsCE.NET 6.0(R3)。 2.2 软件需求 2.2.2 Qt简介

Qt拥有直观的的C++类库,Qt C++类库提供一套丰富的应用程序生成块,包含了构建高级跨平台应用程序所需的全部功能。具有直观,易学、易用,生成好理解、易维护的代码等特点[7]。

Qt还具有跨桌面和嵌入式操作系统的移植性,使用Qt,只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码,可以说Qt无处不在。Qt有如下几个重要的特点:

(1)使用单一的源代码库定位多个操作系统; (2)通过重新利用代码可将代码跨设备进行部署; (3)无须考虑平台,可重新分配开发资源; (4)代码不受担忧平台更改影响的长远考虑 ;

(5)使开发人员专注于构建软件的核心价值,而不是维护 API 。

Qt作为一种跨平台的图形界面开发平台,可以直接建立在简单的帧缓冲驱动上,并且有良好的可配置、可裁剪特性,因此也经常用在嵌入式系统上。Qt支持一般图形界面系统的由事件驱动的变成模型,并且支持特有的信号与槽的变成模型,应用非常灵活。Qt拥有丰富的API和大量的开发文档,对于用户开发来说是非常方便的。经常多年的发展,Qt已经不单纯是一个图形界面开发平台,它对应用变成的各种领域(如网络、数据库等)都提供了自己的支持,功能非常强大。

2.2.2 Qt Creator开发软件

Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。在功能方面,Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。

Qt Creator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。它的优势主要有以下三个方面: 第一,使用强大的 C++ 代码编辑器可快速编写代码,语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。

第二,使用浏览工具管理源代码,集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索

第 6 页 共 30 页

常州大学本科生毕业设计(论文)

类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。

第三,为 Qt跨平台开发人员的需求而量身定制 ,集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器, 对 Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目。 2.2.3 VMWare虚拟机

VMWare是一个虚拟PC软件,VMWare的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。

VMware虚拟机中自带的一种增强工具VMware Tools,相当于

VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实现全屏化。

VMware产品主要的功能有:

(1)不需要分区或重开机就能在同一台PC上使用两种以上的操作系统。

(2)完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料。

(3)不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制粘贴功能。

(4)有复原(Undo)功能。

(5)能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。

(6)热迁移,高可用性。

本设计需要完成Qt/Embedded的环境搭建才能实现程序的跨平台移植,所以在计算机上还得安装Linux操作系统,通过VMware安装Linux操作系统,能够在Windows系统和Linux系统之间自由切换,方便技术开发。 2.2.4 Linux操作系统

Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。Linux的内核稳定、功能强大、支持多种硬件平台、应用软件多、兼容性好:

第 7 页 共 30 页

常州大学本科生毕业设计(论文)

内核可根据需要任意裁减以及使用成本低的特点非常适合嵌入式应用。Linux凭借自身诸多优势,进军嵌入式这个IT产业的新的关键领域。嵌入式Linux操作系统适时地出现在各嵌入式厂商面前,吸引了许多开发商地目光,成为嵌入式操作系统的新宠。由此可见,嵌入式Linux在理论研究和实际应用中都具有重要意义。

RedHat是美国RedHat公司的产品,是相当成功的一个Linux发行版本,也是目前使用最多的Linux发行版本。Red Hat最早由Bob Young和Marc Ewing在1995年创建。原来的Red Hat版本早已停止技术支持,目前Red Hat的Linux分为两个系列,其中一个是由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux系列;另一个是由社区开发的免费的Fedora Core系列。

本设计在PC机上采用的Red Hat Enterprise Linux 5操作系统发布于1997年12月,它支持Intel、alpha和Sparc8平台和大多数的应用软件。极其简单易用的RPM模块化的安装、配置和卸载工具,使程序的安装可在15分钟内完成。软件升级也很方便,这对刚开始使用Linux的用户来说是一大福音。

嵌入式linux 是将Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。一个嵌入式Linux系统从软件的角度看通常分为引导加载程序BootLoader、Linux内核、文件系统和用户应用程序。Bootloader是系统加电后运行的第一段代码,目的是加载操作系统,Linux内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性,文件系统是操作系统中负责管理和存储文件信息的软件机构,这些都已经在ARM开发板上实现,加上本设计完成的应用程序,就组成了一个完整嵌入式Linux系统。 2.3 功能需求

(1)基本功能:游戏区域顶部随机产生单个方块并下落,在此过程中通过操作方块的移动和旋转来进行游戏,直到方块填充到游戏区域底部并开始堆积。碰撞过程中检测到一行或多行完全填满,就将组成这些行的所有方块消除,同时增加积分。而不能消除的方块会一直堆积,如果方块堆积的高度达到游戏区域顶部,则宣布游戏结束。图2.1为俄罗斯方块游戏基本设计框图。

(2)扩展功能:能够显示下一个将要出现的方块;自由选择难度,决定方块下落的速度;游戏随时可以暂停和恢复、或者重新开始;颜色可以随机变化以增强趣味性;“下”键可以自由调整,决定是直接下落到底还是加速下移。

第 8 页 共 30 页