1、 学号: 常 州 大 学 毕业设计(论文) ( 2012 届) 题 目 学 生 学 院 专业班级 校内指导教师 专业技术职务 校外指导老师 专业技术职务 二 一二 年 六 月 I 基于 ARM 的俄罗斯方块游戏的开发 摘 要: 随着现代化技术的高速发展,人们的生活已经离不开嵌入式了。在消费电子领域,嵌入式系统的游戏娱乐功 能受到越来越多的关注。 本课题是基于 ARM微处理器 S3C2440A 硬件平台 ,设计并实现了俄罗斯方块游戏 。 系统的实现主要分为两个部分。首先, 在 PC 机上 安装 qt creator 开发软件,利用 Qt 的信号与槽、事件机制等技术 , 完成 俄罗斯方块游戏程序的
2、设计 。 程序设计的 重点 是 实现方块的数据存储、移动旋转 和 消行等功能 。 然后搭建Qt/Embedded 开发环境 , 嵌入式交叉编译俄罗斯方块游戏程序 生成可执行文件 , 并 下载到 ARM 开发板 mini2440 上 运行。 经过测试,整个系统性能良好,满足设计要求。 俄罗斯方块游戏通过键盘 进行操作,人机交互效率 较 高。界面美观大方,功能说明简单完整。 研究方案跟进时代主流,具有重要的现实意义。 关键词: 嵌入式 Linux、 S3C2440A、 Qt、俄罗斯方块 II The Development of Tetris Game Based on the ARM Abstr
3、act : With the rapid development of modern technology, peoples lives have been inseparable from the embedded. The entertainment function of embedded system is paid more and more attention in consumer electronic application field.This paper designed and implemented Tetris game which is based on the A
4、RM microprocessor S3C2440 hardware platform. The realization of the system is divided into two parts. First install the qt creator development software on a PC,and complete the design of Tetris game program with the techniques of Qts “signals and slots” and the event mechanism.The program focuses on
5、 the data storage of boxes and the functions of moving,rotation and removing.Then build the development environment of Qt/Embedded ,embedded cross compile Tetris game program to generate an executable file which is downloaded to run on ARM development board mini2440. After testing,The system runs qu
6、ite well and meet the design requirements. Tetris game is operated with a keyboard and the man-machine efficiency is very high.It has a pretty interface. The functional description is both simple and complete. Research approach keeps with the times and it has important practical significance. Key wo
7、rds: embedded Linux、 S3C2440A、 Qt、 Tetris III 目录 摘 要 .I ABSTRACT. II 1 绪论 . 1 1.1 课题研究背景及国内外研究现状 . 1 1.2 课题的提出与意义 . 2 1.3 解决问题的思路、方法以及取得成果 . 2 2 需求分析 . 4 2.1 硬件 需求 . 4 2.1.1 嵌入式处理器 . 4 2.1.2 开发板的选择 . 5 2.2 软件需求 . 6 2.2.2 Qt 简介 . 6 2.2.2 Qt Creator 开发软件 . 6 2.2.3 VMWare 虚拟机 . 7 2.2.4 Linux 操作系统 . 7 2
8、.3 功能需求 . 8 2.4 游戏界面需求 . 9 2.5 方块图形需求 . 10 3 系统设计 . 11 3.1 QT CREATOR 安装与配置 . 11 3.2 模块实现 . 12 3.3 关键技术实现 . 13 3.3.1 方块的数据结构 . 13 3.3.2 方块的旋转和移动 . 14 3.3.3 消行 . 16 3.3.4 定时器实现 . 17 3.3.5 UI 设计和游戏区域的绘制 . 18 3.3.6 键盘处理 . 21 4 移植和测试 . 23 4.1 交叉编译 工具安装 . 23 4.2 交叉编译 QT/EMBEDDED . 23 4.3 下载运行 . 24 5 总结与展
9、望 . 28 5.1 总结 . 28 5.2 展望 . 28 参 考 文 献 . 29 致 谢 . 30 常州大学本科生毕业设计 (论文) 第 1 页 共 30 页 1 绪论 1.1 课题研究背景及国内外研究现状 嵌入式系统是当前发展最快最有前途的 IT 应用领域之一,嵌入式技术的发展正以前所未有的速度影响和改变着我们的生活。人们平常所熟知的手机、摄像机、游戏机、智能玩具、 3D 电视 、医疗仪器、汽车电子、工业控制设备、航天航空设备 等 都有嵌入式系统。嵌入式系统是二十一世纪科技领域的重大创新,将推进全球经济社会高速发展。 嵌入式 系统 在硬件和软件交替发展 的双螺旋的支撑下逐渐趋于稳定和成
10、熟 。 作 为一类特殊的计算机系统,主要由硬件平台、嵌入式操作系统和嵌入式应用程序构成。硬件平台包括嵌入式处理器和外围设备。 嵌入式微处理器是嵌入式系统的核心部件 ,是控制、辅助系统运行的硬件单元,所以,嵌入式微处理器是决定嵌入式系统功能强弱的主要因素,也决定了嵌入式系统的应用范围和开发复杂度 。 ARM( Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件 , 技术具有性能高、成本低和能耗省的特点 3。 到目前为止, ARM 微处理器及技术的应用几乎已经深入到各个领域: ( 1) 工业控制领域:作为
11、32 位的 RISC 架构,基于 ARM 核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展, ARM 微控制器的低功耗、高性价比,向传统的 8 位 /16 位微控制器提出了挑战。 ( 2) 无线通讯领域:目前已有超过 85%的无线通讯设备采用了 ARM 技术,ARM 以其高性能和低成本,在该领域的地位日益巩固。 ( 3) 网络应用:随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获 得竞争优势。此外, ARM 在语音及视频处理上行了优化,并获得广泛支持,也对 DSP 的应用领域提出了挑战。 ( 4) 消费类电子产品: ARM 技术在
12、目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 ( 5) 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用 ARM技术。手机中的 32 位 SIM 智能卡也采用了 ARM 技术。除此以外, ARM 微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用 9。 ARM 的商业模式是开放的,任何厂商都可以购买授权 , 目前,总共有30 家半导体公司与 ARM 签订了硬件技术使用许可协议,其中包括 Intel、IBM、 LG 半导体、 NEC、 SONY、飞利浦和国家半导体这样的大公司。至于软件系统的合伙人,则包括微软、 SUN 和 MRI 等一系列知名公司 。 进
13、入21 世纪之后,由于手机制造行业的快速发展,出货量呈现爆炸式增长, ARM处理器占领了全球手机市场 。由此可见, ARM 处理器还具有广阔的发展空间,将会不断影响和改变我们的生活。 常州大学本科生毕业设计 (论文) 第 2 页 共 30 页 1.2 课题的提出与意义 当前 , ARM 正在与包括 Android 在内的所有 Linux 联盟合作,致力于从芯片级至操作系统级两方面统一,降低产品的开发门槛。 “ ARM+Linux” 代表了未来的趋势,标准化的硬件 +软件的组合,可以令更多 OEM 厂商愿意去做差异化设计。 Linux 是开放源代码的操作系统 ,直接带来的就是开发成本的降低。另外
14、,Linux 不仅在系统资源上占用率较低,在高性能运算上又能媲美 Windows,而良好的可扩展性和可维护性也是其优势所在,所以,“ ARM+Linux”毫无疑问成为了嵌入式开发的主流组合 6。 Qt 是跨平台的应用程序和 UI 框架。它包括跨平台类库、集成开发工具和跨平台 IDE。使用 Qt,只需一次性开发应用程序,无须重新编写源代码,便可跨不 同桌面和嵌入式操作系统部署这些应用程序。所以本设计采用先在 PC 机上实现应用程序的编写,再跨平台移植到 ARM 硬件平台上的方法来实现嵌入式应用程序的开发。 俄罗斯方块( Tetris)是一款风靡全球的电视 游戏机 和掌上游戏机游戏,它由俄罗斯人
15、阿列克谢 帕基特诺夫 发明,故得此名。俄罗斯方块的基本规则是 移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。 俄罗斯方块曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。由于俄罗斯方块具有的数学性、动态性与知名度,也经常拿来作为游戏 程序设计 的练习题材。 本设 计选择开发“俄罗斯方块”游戏不仅具有技术上的可行性,而且开发成果也具有相当的现实意义。 1.3 解决问题的思路、方法以及取得成果 本设计的目的是在
16、 ARM 开发板上运行“俄罗斯方块”游戏程序,而硬件平台选用的是 Mini2440 开发板,它采用了 S3C2440 微处理器,这款开发板低价实用,重要的是 Mini2440 开发板已经移植了基于 Linux-2.6.32 内核的嵌入式 Linux操作系统 ,还提供了 arm版本的 QtE-4.6.3,配合用户手册,可以快速入门。 本设计的研究内容主要分为以下 2 个步骤: 第一,鉴于 Qt 的跨 平台特性,可以利用 Qt 的相关类库,选择在 PC 机上完成“俄罗斯方块”游戏程序的设计。本设计使用的是 Windows 版本的 Qt Creator软件, 根据官方描述, Qt Creator 的
17、设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。 游戏程序的设计需要解决几个关键的问题:方块的数据结构、方块的移动、碰撞和消行等。另外由于开发板屏幕分辨率为 320*240,所以窗口界面的大小和布局要特别注意。游戏统一使用键盘操作,后续还可以扩展诸如计分,难度设置、颜色调节等等的功能。 第二,由于 PC 机是 X86 结构, Mini2440 是 ARM 架构,所以设计好的游戏程序必须通过嵌入式交叉编译以后才能在开发板上运行。因此,嵌入式交叉编译常州大学本科生毕业设计 (论文) 第 3 页 共 30 页 环境的搭建成为了游戏移植过程的关键。 QTEmbedde
18、d 是 NOKIA 公司的图形化界面开发工具 Qt 的嵌入式版本 ,本设计采用的是 4.5.2 版本,配置环境需要在 PC 机 Linux 环境下, Linux 系统可以通过虚拟机安装,方便快捷。交叉编译工具需要提前安装,选用 的是 Mini2440 配套的 arm-linux-gcc-4.3.2,接着下载对应 Qt/Embedded 源 码包,解压以后要配置编译 参数,编译源码的过程非常漫长,大概需要 三个小时,之后设置环境变量 ,再通过嵌入式交叉编译俄罗斯 方块 的 游戏程序,将生成的目标文件下载到开发板上运行即可 8。开发板外接 USB 接口键盘后,可以直接对游戏进行操作。 常州大学本科
19、生毕业设计 (论文) 第 4 页 共 30 页 2 需求分析 2.1 硬件需求 2.1.1 嵌入式处理器 嵌入式处理器是嵌入式系统的核心,是控制、 辅助系统 运 行的硬件单元。范围极其广阔,从最初的 4 位处理器,目前仍在大规模应用的 8 位单片机,到最新的受到广泛青睐的 32 位, 64 位嵌入式 CPU。 嵌入式处理器典型的特点就是工 作稳定性高,功耗较小,对环境的适应能力强,体积小,且集成的功能较多。嵌入式处理器可以分成 以下几类: ( 1) 嵌入式微处理器 嵌入式微处理器是由通用计算机中的 CPU 演变而来的。它的特征是具有 32位以上的处理器,具有较高的性能 ,当然其价格也相应较高。
20、 但与 计算机处理器不同的是,在实际嵌入式应用中,只 保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。 和 工业控制计算机 相比,嵌入式微处理器具有体积小、重量轻、成本 低、可靠性高的优点。 ( 2) 嵌入式微控制器 嵌入式微控制器的典型代表是 单片机 ,从 70 年代末单片机出现到今天,虽然已经经过了 20 多年的历史,但这种 8 位的电子器件目前在 嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成 ROM/EPROM、 RAM、总线 、总线逻辑、定时 /计数器、 看门狗 、 I/O、串行口、脉宽调制输出、 A/D、D/A、
21、 Flash RAM、 EEPROM 等各种必要功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。 ( 3) 嵌 入式 DSP 处理器 DSP 处理器是专门用于信号处理方面的 处理器 ,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、 FFT、谱分析等各种仪器上 DSP 获得了大规模的应用。 ( 4) SoC 片上系统 SoC 追求产品 系统最大包容的集成器件,是目前嵌入式应用领域的热门话题之一。 SOC 最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。而且 SO
22、C 具有极高的综合性,在一个硅片内部运用 VHDL 等硬件描述语言,实现一个复杂的系统。 ARM 属于嵌入式微处理器的范畴,本文 的研究目标是基于 ARM 的程序开发 ,所以本设计采用 三星公司推出的 16/32 位 RISC 微处理器 S3C2440A, 它为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。 常州大学本科生毕业设计 (论文) 第 5 页 共 30 页 为了降低整体系统成本, S3C2440A 提供了一系列丰 富的内部设备。S3C2440A 采用了 ARM920t 的内核, 0.13um 的 CMOS 的标准宏单元和存储器单元。其低功耗,简单,优雅,且
23、全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构 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 字长的行组成。通过提供一套完整的通用系统外设, S3C24
24、40A 减少整体系统成本和无需配置额外的组建。 2.1.2 开发板的选择 目前 ARM 开发板 在市场上种类繁多, 有 多种型号与多家厂商 可供 选择 ,对于 ARM 的研究前提就是 选择一个好的开发板来做开发和学习 。 Mini2440 是一款真正低价实用的 ARM9 开发板,是目前国内性价比最高的一款学习板;它采用 Samsung S3C2440 为微处理器,并采用专业稳定的 CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。 mini2440 的 PCB 采用沉金工艺的四层板设计,专业等长布线,保证关键信号线 的信号完整性,生产采用机器贴片,批量生产;出厂时都经过严格的质量控制,配
25、合 用户 手册,可以迅速掌握嵌入式 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 存储 均为掉电
26、非易失的 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)操作系统支持 常州大学本科生毕业设计 (论文) 第 6 页 共 30 页 支持 Linux2.6.32.2 + Qtopia-2.2.
27、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)
28、通过重新利用代码可将代码跨设备进行部署; ( 3) 无须考虑平台,可重新分配开发资源; ( 4) 代码不受担忧平台更改影响的长远考虑 ; ( 5) 使开发人员专注于构建软件的核心价值,而不是维护 API 。 Qt 作为一种跨平台 的图形界面开发平台,可以直接建立在简单的帧缓冲驱动上,并且有良好的可配置、可裁剪特性,因此也经常用在嵌入式系统上。 Qt支持一般图形界面系统的由事件驱动的变成模型,并且支持特有的信号与槽的变成模型,应用非常灵活。 Qt 拥有丰富的 API 和大量的开发文档, 对于用户开发来说是非常方便的。 经常多年的发展, Qt 已经不单纯是一个图形界面开发平台,它对应用变成的各种领
29、域(如网络、数据库等)都提供了自己的支持,功能非常强大 。 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 开放式文件,无须知晓确切的名称或位置搜索