基于Qt的嵌入式终端应用程_序开发——五子棋游戏开发_第1页
基于Qt的嵌入式终端应用程_序开发——五子棋游戏开发_第2页
基于Qt的嵌入式终端应用程_序开发——五子棋游戏开发_第3页
基于Qt的嵌入式终端应用程_序开发——五子棋游戏开发_第4页
基于Qt的嵌入式终端应用程_序开发——五子棋游戏开发_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计报告(论文)报告(论文)题目:基于Qt的嵌入式终端应用程序开发五子棋游戏开发 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: 作 者 姓 名 : 作 者 学 号 : 指导教师姓名: 完 成 时 间 : 2021年6月 北华航天工业学院教务处制北华航天工业学院本科生毕业设计论文原创性及知识产权声明本人郑重声明:所呈交的毕业设计论文基于Qt的嵌入式终端应用程序开发五子棋游戏开发是本人在指导教师的指导下,独立进行研究工作取得的成果。除文中已经注明引用的内容外,本设计论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本设计论文的研究做出重要奉献的个

2、人和集体,均已在文中以明确方式标明。因本毕业设计论文引起的法律结果完全由本人承当。本毕业设计论文成果归北华航天工业学院所有。本人遵循北华航天工业学院有关毕业设计论文的相关规定,提交毕业设计论文的印刷本和电子版本。本人同意北华航天工业学院有权保存毕业设计论文的印刷本和电子版,并提供目录检索与阅览效劳;可以采用影印、缩印、数字化或其它复制手段保存论文;在不以营利为目的的前提下,可以公布非涉密毕业设计论文的局部或全部内容。特此声明毕业设计论文 指导教师: 年 月 日 年 月 日摘 要人工智能是近年来很活泼的研究领域之一,它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。它的中心任务是研究如何

3、使计算机去做那些过去只能靠人的智力才能做的工作。目前各兴旺国家都把人工智能作为重点工程,列入本国的高科技开展方案当中,投入巨大的人力和物力。计算机博弈是人工智能研究的一个重要分支,它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。五子棋本身就是一款益智休闲游戏,规那么简单。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国创造的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。本系统就以五子棋游戏作为研究课题,对五子

4、棋的算法与规那么做了研究,阐述了如何在 Linux下用 Qt来开发五子棋游戏并给出了具体的实现。本系统以五子棋为例实现的主要功能有棋盘、棋子的输出等。本系统还有开始、积分、重来、状态显示和悔棋等辅助功能。Qtopia的出现为使用嵌入式Linux作为操作系统的手持设备提供了开发图形应用程序的便捷手段。本文介绍了在Linux操作系统中构建Qtopia环境的过程。接着,描述了使用Qtopia程序库开发嵌入式应用的过程。最后,本文以OK6410为目标平台,阐述了构建交叉编译环境和交叉编译应用程序的步骤。关键词:五子棋;Qt;人工智能;OK6410AbstractArtificial intellige

5、nce is one of the brisk research areas. It is with bio-engineering, space technology has been listed as 21 in the world along with the three cutting-edge technologies. Its central task is to study how to make the computer do that in the past to rely on human intelligence to do. AI is currently regar

6、ded as the focus of the developed countries included in this cars high-tech development projects invested tremendous human and material resources. The chess game on computer is an important branch of the research on artificial intelligence. The researches on chess game bring plenty of important meth

7、ods and theories for researching on artificial intelligence, and cause broad influences on society and academe. Renju chess game means five pieces on one line, is a sort of game, which is full of wisdom, leisure and benefits, and the rules of it are very simple. Man-machine chess game Renju in one o

8、f the computer. To study the computer algorithm, we can see the beginning of artificial intelligence shadow, but also help us to human brain development. Backgammon invented in China , and the research it can allow more foreigners to understand and help to promote Chinas traditional culture.This pap

9、er focuses on the study of this chess game, and uses the Linux to explore the Renju chess game. This system mainly uses the function of Qt to realize the export of chessboard and checker, and people can play with computer. Moreover, this system has the assistant functions such as “Deuce、“ Play Again

10、、“ start 、“ count score 、“ Go back and so on.With the emergence of Qtopia, it is more convenient to develop GUI applications on embedded Linux. This paper firstly introduces the steps of building Qtopia development environment on Linux. Then, we describe how to develop GUI application by using Qtopi

11、a Development Kit. In the end, this paper refers to the process of building cross-compile environment based on the target device OK6410. Keywords: Renju; Qt ; Artificial intelligence; start; OK6410;目 录 TOC o 1-3 h z u HYPERLINK l _Toc320633492 摘 要 PAGEREF _Toc320633492 h I HYPERLINK l _Toc320633493

12、Abstract PAGEREF _Toc320633493 h II HYPERLINK l _Toc320633495 第1章 绪论 PAGEREF _Toc320633495 h 3 HYPERLINK l _Toc320633496 1.1 课题研究现状分析 PAGEREF _Toc320633496 h 3 HYPERLINK l _Toc320633497 1.2 选题的目的及意义 PAGEREF _Toc320633497 h 4 HYPERLINK l _Toc320633498 1.3 课题研究的主要内容 PAGEREF _Toc320633498 h 4 HYPERLINK

13、 l _Toc320633499 用Qt-creator进行五子棋应用程序的设计 PAGEREF _Toc320633499 h 4 HYPERLINK l _Toc320633500 将应用程序移植到OK6410的开发板上 PAGEREF _Toc320633500 h 5 HYPERLINK l _Toc320633501 第2章 系统需求分析 PAGEREF _Toc320633501 h 6 HYPERLINK l _Toc320633502 2.1系统需求 PAGEREF _Toc320633502 h 6 HYPERLINK l _Toc320633503 2.2 功能需求 PAG

14、EREF _Toc320633503 h 6 HYPERLINK l _Toc320633504 2.3 系统的设计目标 PAGEREF _Toc320633504 h 6 HYPERLINK l _Toc320633505 第3章 系统开发的技术背景 PAGEREF _Toc320633505 h 8 HYPERLINK l _Toc320633506 3.1 Qt技术介绍 PAGEREF _Toc320633506 h 8 HYPERLINK l _Toc320633507 3.2 OK6410开发板简介 PAGEREF _Toc320633507 h 9 HYPERLINK l _Toc

15、320633508 3.3 Linux操作系统简介 PAGEREF _Toc320633508 h 11 HYPERLINK l _Toc320633509 3.4可行性分析 PAGEREF _Toc320633509 h 13 HYPERLINK l _Toc320633510 经济可行性 PAGEREF _Toc320633510 h 13 HYPERLINK l _Toc320633511 技术可行性 PAGEREF _Toc320633511 h 14 HYPERLINK l _Toc320633512 操作可行性 PAGEREF _Toc320633512 h 14 HYPERLIN

16、K l _Toc320633513 第4章 系统总体设计 PAGEREF _Toc320633513 h 15 HYPERLINK l _Toc320633514 4.1 五子棋游戏设计原那么 PAGEREF _Toc320633514 h 15 HYPERLINK l _Toc320633515 4.2 五子棋游戏的总体设计结构 PAGEREF _Toc320633515 h 15 HYPERLINK l _Toc320633516 第5章 系统模块设计 PAGEREF _Toc320633516 h 16 HYPERLINK l _Toc320633517 5.1 用Qt-creator进

17、行五子棋应用程序的主要功能实现 PAGEREF _Toc320633517 h 16 HYPERLINK l _Toc320633518 5.1.1 绘制棋盘和棋子的功能 PAGEREF _Toc320633518 h 16 HYPERLINK l _Toc320633519 5.1.2 鼠标处理事件的实现 PAGEREF _Toc320633519 h 17 HYPERLINK l _Toc320633520 将鼠标坐标转换为方格子的坐标 PAGEREF _Toc320633520 h 18 HYPERLINK l _Toc320633521 将方格子的坐标转换为鼠标坐标 PAGEREF _

18、Toc320633521 h 18 HYPERLINK l _Toc320633522 计算direction 方向的side方棋子个数 PAGEREF _Toc320633522 h 19 HYPERLINK l _Toc320633523 判断胜负的函数 PAGEREF _Toc320633523 h 21 HYPERLINK l _Toc320633524 5.2将应用程序移植到OK6410的开发板上 PAGEREF _Toc320633524 h 21 HYPERLINK l _Toc320633525 嵌入式Linux开发交叉编译器的安装 PAGEREF _Toc320633525

19、h 22 HYPERLINK l _Toc320633526 5.2.2 Bootloader 的编译与烧写 PAGEREF _Toc320633526 h 22 HYPERLINK l _Toc320633527 根文件系统的烧写与NFS挂载 PAGEREF _Toc320633527 h 22 HYPERLINK l _Toc320633528 编译第三方库 PAGEREF _Toc320633528 h 23 HYPERLINK l _Toc320633529 第6章 系统调试 PAGEREF _Toc320633529 h 27 HYPERLINK l _Toc320633530 6.

20、1 五子棋游戏测试概述 PAGEREF _Toc320633530 h 27 HYPERLINK l _Toc320633531 6.2系统设计和应用程序移植过程中出现的问题及解决方法 PAGEREF _Toc320633531 h 27 HYPERLINK l _Toc320633532 结 论 PAGEREF _Toc320633532 h 34 HYPERLINK l _Toc320633533 致 谢 PAGEREF _Toc320633533 h 35 HYPERLINK l _Toc320633534 参考文献 PAGEREF _Toc320633534 h 36 HYPERLIN

21、K l _Toc320633535 附 录1 PAGEREF _Toc320633535 h 37 HYPERLINK l _Toc320633536 五子棋游戏的理论价值 PAGEREF _Toc320633536 h 37 HYPERLINK l _Toc320633537 附 录2 PAGEREF _Toc320633537 h 42 HYPERLINK l _Toc320633538 The Theoretical Value Of Renju PAGEREF _Toc320633538 h 42第1章 绪论随着嵌入式技术的开展,嵌入式的应用领域也越来越广泛。随着IC设计的开展,出现了

22、工业化ARM芯片,可以说ARM是未来嵌入式开发的主宰。ARM是Advanced RISC Machines的首字母组合,是一类微型处理器的统称。五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国创造的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。本系统就以五子棋游戏作为研究课题,对五子棋的算法与规那么做了研究,阐述了如何在 Linux下用 Qt来开发五子棋游戏并给出了具体的实现。本系统以五子棋为例实现的主要功能有棋盘、棋子的输出等。本系统还有开始、重来、状态显示、积分、退出和悔棋等辅助功能。新一代的ARM

23、11处理器,通过全新的设计,采用了更多的晶体管,能够到达两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。本系统的所有用户界面那么采用可跨多平台的Qt图形界面设计软件进行开发,Qt图形界面设计软件具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。1.1 课题研究现状分析目前,连珠五子棋这一棋类运动已迅速在国际上开展起来。现在,有40多个国家和地区己开展了五子棋活动。许多国家的人对五子棋都有不同的爱称,例如韩国人把五子棋称为“情侣棋,言下之意是说情人之间下五子棋有利于增加情感的交流;欧洲人称之为“绅士棋,喻棋手下五子棋的君子风度胜

24、似绅士:美洲人称之为“商业棋,意思可能是边下五子棋边谈生意,是商业贸易之桥;日本人那么称之为“中老年棋,表示五子棋适合成熟的中老年的生理特点和思维方式。不同语言、地区的人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,以增进友谊。我国是从20世纪90年代引进五子棋世界流行规那么的,此后的十多年的时间里,五子棋在民间迅速普及。北京是五子棋开展最早也最普及的地区,1992年就成立了我国第一个五子棋民间组织京都五子棋社。在北京的带动下,其他地区也先后成立了五子棋组织,从此积极的投身于这项益智的游戏中,2004年成立中国围棋协会五子棋分会,它属于中国五子棋界的领导机构,并且先后在局部地区组织俱

25、乐部,组织比赛,让越来越多的人参与和喜爱这项活动,但是中国还是没有专业的棋手,在这方面的相关规那么和体系还不完善,能够真正弄懂的人还是很少,所以中国在五子棋这方面的开展空间还是很大的,这就需要我们不断的努力探索和研究才能把五子棋开展的更加壮大。那么现在通过网络五子棋游戏的产生也让更多的人收益,人们不仅可以和电脑下棋,还可以和异地的陌生人下棋,更可以在下棋的时候和对方交流心得,这就是我此次设计的主题,那么在未来的五子棋的开展来看,也许比赛的规那么会有所改变,棋局会变的更复杂而且所需的技巧也会越来越多,这就需要所有人的努力才会实现了。1.2 选题的目的及意义五子棋对人的智力开发有利,其实这样说不全

26、面,非智力因素上的帮助也是明显的,如毅力、耐心、细心、心理自我调节、思考方式等习惯的培养也是非常有帮助的。五子棋的根在中国,有着广泛的群众根底。但与世界先进的五子棋技术相比,我们的棋艺水平还有待进一步提高,所以我们要推广五子棋,宣传五子棋。中国作为五子棋的发源国,不仅要回到国际大家庭中,更重要的是要靠我们的力量为五子棋在下个世纪的开展起到世界性的推动作用,并为国际连珠棋成为奥运工程做出一份奉献!1.3 课题研究的主要内容1.3.1用Qt-creator进行五子棋应用程序的设计1. 建立主机开发环境开发主机装有ubuntu Linux 。我们选择Trolltech公司的自由版软件QT-embed

27、ded-和Qtopia作为开发环境,下载RPM包并安装。Qt Embedded和Qtopia函数库:包含了完整的开发嵌入式Linux应用程序的核心函数库。QPEQtopia Executable:用于处理所有的用户界面问题。mkipks:为配置PDA而产生ipk文件的包。此外,还有用于QT开发的典型工具:Designer:Qt的图形设计器。tmake:跨平台Makefile生成器。moc:用于Qt C+ 扩展的meta2object编译器。uic:从XML文件生成代码的用户界面编译器。有了这些工具,再加上g+GNU C+编译器,就可以进行基于Qtopia应用程序的开发、编译和调试了。2. 开发

28、应用程序Qtopia应用程序的开发类似传统的窗口应用程序开发,可以遵循面向对象的程序设计方法。在程序设计的过程中,要将传统桌面应用程序使用的类换成Qtopia的类。由于嵌入式设备存储器的特殊性,在面向文档的应用程序中,需要利用Qtopia类库中的对文档的特殊支持方法。1.3.2将应用程序移植到OK6410的开发板上主要完成的任务有NFS配置及使用,嵌入式Linux开发交叉编译器的安装,Bootloader 的编译与烧写,Linux 内核的编译与烧写,根文件系统的烧写与NFS挂载,编译第三方库。第2章 系统需求分析随着现实生活中生活节奏的加速,生活压力的加大,休闲娱乐变得越来越重要。五子棋子游戏

29、,玩法简单,娱乐性也很高。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发,了解和掌握游戏开发的原理与方法。让电脑像人脑一样思考,一直是人工智能开展的最终目标。作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。所以五子棋游戏能很好的帮助人们从生活压力中得到快乐。2.1系统需求五子棋作为一款休闲益智游戏,它最大的优点在于游戏规那么家喻户晓,简单,上手快,趣味性强,所以受广阔用户青睐,在各大提供棋牌类游戏的平台都可以看到玩五子棋游戏的人很多。休闲益智游戏中等级并不是最重要的追求目标,通过对游戏规那么的熟悉,能很快上手掌握其操作方式,也更适合男女老幼全

30、家共同娱乐,花费时间简短,速战速决,在短时间内感受到游戏的乐趣,完全享受气氛轻松活泼的游戏过程。此种娱乐方式既不耽误时间也能轻松调剂娱乐,充分适合现代人们的娱乐需求。更主要的是开发了人的智力,成为年轻一代最流行的游戏,据统计,五子棋游戏的玩家中,学生占了接近三分之一的比例,对学生的智力健康成长起一定作用,正所谓休闲娱乐两不误。2.2 功能需求本系统要求界面简洁,美观,交互性要比拟强。操作方便,得体,把五子棋游戏规那么中最根本的规那么表达出来,比方“悔棋、“重来等。五子棋还有一大特点就是速战速决,电脑应在很短时间内就应做出判断,所以要合理的设计判断胜负的函数。并能提供一定的帮助,违反游戏规那么的

31、时候应立即指出。在正规五子棋比赛中,都设置了“禁手这一规那么,但广阔玩家之所以喜爱五子棋游戏,就是因为五子棋游戏规那么简单,“禁手这一规那么很复杂,所以在本系统中,采用“无禁手的规那么,让规那么简单化。这样,让初学的人对五子棋有更加高的可控度,能够真正体会到下五子棋的快乐。系统中还设计了状态显示,和积分等功能,在黑方或者白方任意一方获得胜利,都能及时的显示胜负的一方。积分功能让游戏的人能够体会的胜利的喜悦。2.3 系统的设计目标设计基于Qt的五子棋程序接收的各种消息可以分为两类:一类是由硬件装置产生的消息如鼠标被按下),另一类是由玩家交流发送的消息。当指定事件发生时,游戏判断胜负的算法会根据下

32、棋的相应的位置来进行。需要实现的的游戏重要功能:1主窗口:负责管理所有的部件,创立所有信号和槽的连接2棋盘类:绘制棋盘,把棋盘看成一个二维数组,处理鼠标点击事件,在点击处一定范围内绘制棋子,然后最主要的就是算法,就是怎么走才算赢,这个要花时间研究3积分和胜负显示,使游戏的人体会到胜利的快乐。4设计按钮,控制开始、重来、悔棋、退出等功能。结合实际玩家需要,运用Qt技术设计出五子棋游戏。要用鼠标来获取坐标(mousePressEvent(),点击的时候应有一定的范围。增加图形界面类(paintEvent(),把显示功能从棋盘类中脱离出来,棋盘只负责棋子坐标数据的存储和更新。mRecord类对下棋方

33、的相关信息进行了记录,mnextturn变量对轮到哪一方下棋进行了记录。为使用界面更加的美观,打算给界面贴一张背景图(label-setPixmap(),棋盘的网格没有用QPainter类的drawline()来实现,因为直接画出来的线条不美观。棋子本身没有用采用QPainter类的drawEllipse()画圆并填充来实现,而是直接drawImage()贴图来实现。设计的开始、重来、退出、悔棋按钮都用QPushButton类来实现,并实现信号和槽函数的链接。游戏玩家可以根据游戏按键来控制游戏的开始,暂停和结束,在进入游戏后,玩家可以通过鼠标点击来下棋,并能够在游戏阶段进行积分,让玩家体会到游

34、戏的快乐以及战斗的快乐。本系统界面美观,友好,操作方便。 第3章 系统开发的技术背景本设计与建设过程中应用的主要技术有用Qt开发五子棋应用程序的开发,包括绘制出棋子和棋盘,设置出开始、重来、悔棋、退出等按钮功能。用到了鼠标点击事件的处理,绘制棋子,和棋盘的函数drawpixmap的使用。还有胜负显示,黑方和白方两方的积分。还有就是应用程序的移植,包括u-boot的烧写,内核的裁剪,根文件系统的烧写,编译第三方库,其中包括 ,qtopia源码的编译,运用的软件主要有ubuntu桌面应用为主的Linux操作系统。运用的硬件主要有OK6410开发板。3.1 Qt技术介绍Qt是一个多平台的C+图形用户

35、界面应用程序框架,它是基于面向对象的思想进行相应开发的,支持真正意义上的组件编程,可以为不同用户提供华美的用户界面。所以,从本质上来说Qt是一个跨平台的C+应用程序开发框架,有时又被称为C+部件工具箱。Qt被用在KDE桌面环境、Opera、Google Earth、Skype、Adobe Photoshop Album 和 VirtualBox 的 开 发 中 , 是 诺 基 亚 Nokia 的 Qt Development Frameworks 部门的产品。使用 Qt只需一次性开发应用程序和用户界面,无须再次重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。信号和插槽机制是 Q

36、t 的核心机制,也是 Qt 的核心特性。 Qt 有着自身的特点,不同于其他界面开发软件,其中一个重要的地方,便是信号与插槽机制,因此精通 Qt 编程是基于对信号和插槽机制有着深入的了解;信号和插槽是一种高级接口,很好的解决了对象与对象之间的通信问题,也是 Qt区别于其他工具包的重要地方。信号和插槽是 Qt 自行定义的一种通信机制,Qt 编程语法是完全符合标准 C/C+语言的,但是信号与插槽机制却是独立于标准的 C/C+,因此要正确的处理信号和插槽,必须借助一个称为 mocMeta Object Compiler的 Qt工具,该工具是一个 C+预处理程序,它为高层次的事件处理自动生成所需要的附加

37、代码。信号/槽机制是在QObject类中实现的。在QObject类或者其一个子类(比方:QWidget类)继承的所有类中,都存在了信号和槽。当对象改变其状态的时候,信号被发送,对象不关心有没有其他对象接收到这个信号。槽是类的正常成员函数,可以将信号和槽通过connect()函数任意连接。当一个信号被发射,它所连接的槽会被立即执行,如同一个普通函数调用一样。Qt 安装配置1.下载安装包从网址 :/qt.nokia /downloads下载Qt libraries for Windows (minGW 4.4, 354 MB) 和Qt Creator 2.4.0 for Windows (53 M

38、B)2.安装先安装Qt Creator,安装过程中会自动安装minGw,并记住路径以便安装Qt Library时使用。在安装Qt Libraries3.配置安装完毕,翻开Qt Creator, 选择工具|选项对话框,在构建和运行中点击添加按钮,选择qmake.exe文件:4.新建工程并运行跟着新建工程的向导一步一步做就可以了,工程的工作目录不能有中文,否那么make的时候会报错。3.2 OK6410开发板简介OK6410是由飞凌嵌入式技术设计生产的一款嵌入式开发平台,它基于三星公司的ARM11处理器S3C2440A,内部带有全性能的MMU(内存处理单元) ,适用于设计移动手持设备类产品。OK6

39、410开发板采用核心板+底板设计,性能稳定可靠,具有高性能、低功耗、接口丰富和体积小等优良特性。目前已成功移植Linux,WINCE等操作系统到OK6410开发板。3每次使用OK6410开发板前,请先将手接触开发板周围金属局部或者其它地方来释放静电,防止直接用手触摸芯片造成芯片烧坏!需要对开发板进行物理操作时,请关闭电源,除USB以及网络接口如果与局域网相接请使用普通网线,开发板标配网线为计算机直连网线外,其它接口均不支持热插拔,开发板工作时,请不要带电插拔。OK6410 开发板采用核心板+底板结构,核心板为6 层,底板为2 层。开发板的布局和走线经过精心设计,可稳定运行在400MHz。接口丰

40、富,功能强大,适用于各种手持设备,消费电子和工业控制设备的开发。三星公司推出的这款16/32 位RISC 处理器S3C2440A,是面向高端手持设备或其它一般应用而设计的芯片。采用ARM1120T 内核,低功耗, 具有高速的处理计算能力。整体设计融合了MMU、AMBA BUS 和Harvard哈佛结构。具有独立的16KB 指令Cache 和16KB 数据Cache。其内部体系结构: 为手持设备和通用嵌入式应用提供片上集成系统解决方案。 16/32 位RISC 体系结构和ARM1120T 内核指令集。 增强的ARM 体系结构MMU 用于支持WinCE,EPOC32 和Linux。 指令高速存储缓

41、冲器ICache,数据高速存储缓冲器DCache,写缓冲器和物理地址TAG RAM 减少主存带宽和响应性带来的影响。 采用ARM1120T CPU 内核支持ARM 调试体系结构。 内部高级微控制总线AMBA体系结构AMBA2.0,AHB/APB。系统管理器 支持大/小端模式。 支持快速总线模式和同步总线模式 寻址空间:每bank 128M 字节总共1G 字节。 支持可编程的每bank 8/16/32 位数据总线带宽。 从bank0 到bank6 都采用固定的bank 起始寻址。 bank7 具有可编程的bank 的起始地址和大小。 8 个存储器bank,其中6 个适用于ROM、SRAM 和其它

42、,另外两个适用于ROM/SRAM和同步DRAM。 所有的存储器bank 都具有可编程的操作周期。 支持外部等待信号延长总线周期。 支持掉电时的SDRAM 自刷新模式。 支持各种型号的ROM 引导NOR/NAND FLASH、EEPROM,或其它。NAND FLASH 启动引导 支持从NAND FLASH 存储器直接启动。 采用4KB 内部缓冲器进行启动引导。 启动之后NAND 存储器仍然可作为外部存储器使用Cache 存储器 64 项全相连模式,采用ICache16KB和DCache16KB。 每行8 字长度,其中每行带有一个有效位和两个dirty 位。 伪随机数或轮转循环替代法。 采用写穿式

43、writethrough或写回式writebackCache 操作来更新主存储器。 4 通道16 位具有PWM 功能的定时器,1 通道16 位内部定时器,可基于DMA 或中断进行工作。 可编程的占空比周期,频率和极性。 能产生死区。 支持外部中断源。UART 3 通道UART,可以基于DMA 模式或中断模式工作。 支持5 位、6 位、7 位或者8 位串行数据发送/接收。 支持外部时钟作为UART 的运行时钟UEXTCLK。 可编程的波特率。 支持IrDA 1.0。 具有测试用的回还模式。 每个通道都具有内部64 字节的发送FIFO 和64 字节的接收FIFO。A/D 转换和触摸屏接口USB 主

44、设备 2 个USB 主设备接口。 遵从OHCI Rev1.0 标准。 兼容USB ver1.1 标准。USB 从设备 1 个USB 从设备接口。 具备5 个Endpoint。 兼容USB ver1.1 标准。SD 主机接口 基于普通、DMA 或中断传输模式字节、半字、字。 支持DMA 脉冲访问只是字传输。 兼容SD 存储卡协议1.0 版。 兼容SDIO 卡协议1.0 版。 64 字节发送和接收FIFO。 兼容多媒体卡协议2.11 版。3.3 Linux操作系统简介当今为 Linux 建立文件分区可以有两种方法,一种是利用空闲的磁盘空间新建一个 Linux 分区 ,另一种是编辑一个现有的分区,使

45、它成为 Linux 分区。如果没有空闲的磁盘空间,就需要将现有的分区删除后,腾出空间,以建立 Linux 分区。DISK DRUID 程序中有明显的新建、删除、编辑、重设等按钮。用户可以直观地对磁盘进行操作。在使用 DISK DRUID 对磁盘分区进行操作时,有四个重要的参数需要仔细设定:它们是挂载点、文件系统类型、驱动器、分区大小。挂载点:它指定了该分区对应 Linux 文件系统的哪个目录,Linux 允许将不同的物理磁盘上的分区映射到不同的目录,这样可以实现将不同的效劳程序放在不同的物理磁盘上,当其中一个物理磁盘损坏时不会影响到其他物理磁盘上的数据。文件系统类型:它指定了该分区的文件系统类

46、型,可选项有 EXT2、EXT3、REISERFS、JFS、SWAP 等。Linux 的数据分区创立完毕后,有必要创立一个 SWAP 分区,它实际上是用硬盘模拟的虚拟内存,当系统内存使用率比拟高的时候,内核会自动使用 SWAP 分区来模拟内存。大小:指分区的大小以 MB 为单位,Linux 数据分区的大小可以根据用户的实际情况进行填写,而 SWAP 大小根据经验可以设为物理内存的两倍,但是当物理内存大于 1GB 时,SWAP 分区可以设置为 2GB。其源码可以自由获得,并能够运行于多数 Unix 系统。它包括以下特性:自动重拨号的拨号目录 ,对串行设备 UUCP 格式的 lock 文件的支持,

47、独立的脚本语言解释器,文件捕获,多用户单独配置,等等。m 用 Meta 或 Alt 键重载命令键,在 1.80 版中这是缺省值,也可以在 minicom 菜单中配置这个选项。不过假设一直使用不同的终端,其中有些没有 Meta 或 Alt 键,那么方便的做法还是把缺省的命令键设置为 CtrlA,当有了支持 Meta 或 Alt 键的键盘时再使用此选项。Minicom假定 Meta 键发送 ESC 前缀,而不是设置字符最高位的那一种(见下)。M 跟“m一样,但是假定 Meta 键设置字符高端的第八位(发送 128+字符代码)。z 使用终端状态行。仅当终端支持,并且在其 termcap 或 term

48、info 数据库入口中有相关信息时才可用。l 逐字翻译高位被置位的字符,使用此标志,minicom 将不再尝试将 IBM 行字符翻译为ASCII 码,而是将其直接传送。许多 PCUnix 克隆不经翻译也能正确显示它们(Linux 使用专门的模式:Coherent 和 Sco)。a 特性使用,有些终端,特别是 televideo 终端,有个很讨厌的特性处理(串行而非并行)。minicom 缺省使用aon,但假设在用这样的终端,你就可以(必须!)加上选项a off。尾字on或off需要加上。t 终端类型,使用此标志,可以重载环境变量 TERM,这在环境变量 MINICOM 中使用很方便;可以创立一

49、个专门的 termcap 入口以备 minicom 在控制台上使用,它将屏幕初始化为 raw模式,这样,连同f标志一起,就可以不经翻译而显示 IBM 行字符。c 颜色使用,有些终端(如 Linux 控制台)支持标准 ANSI 转义序列色彩。由于 termcap 显然没有对于色彩的支持,因而 minicom 硬性内置了这些转义序列的代码。所以此选项缺省为 off。使用c on可以翻开此项。把这个标志,还有m放入 MINICOM 环境变量中是个不错的选择。C 文件名,启动时翻开捕获文件。8 不经修改地传送 8 位字符,“连续意指未对地点/特性进行真正改变,就不插入地点/特性控制序列。此模式用于显示

50、 8 位多字节字符,不是 8 位自否的语言都需要例如显示芬兰文字就不需要这个。minicom 启动时,它首先搜索用于命令行参数的 MINICOM 环境变量,这些参数可在命令行上超载。例如:假设进行了如下设置:MINICOM=m c onexport MINICOM或者其它等效的设置,然后启动 minicom,minicom 会假定终端有 Meat 键或 Alt 键,并且支持彩色。如果从一个不支持彩色的终端登录,并在启动文件(.profile 或等效文件)中设置了minicom,而且又不想重置环境变量,那么就可以键入minicom c off,来运行这次没有色彩支持的会话。当有了 linux 内

51、核源码之后需要交叉编译,因为源码是不能运行的。我们编译的是 2.6 的内核,采用的交叉编译器为 版本。编译命令:make config基于文本的最为传统的配置界面,不推荐使用make menuconfig基于文本选单的配置界面,字符终端下推荐使用make xconfig基于图形窗口模式的配置界面,Xwindow 下推荐使用make oldconfig如果只想在原来内核配置的根底上修改一些小地方,会省去不少麻烦这三个命令中,make xconfig 的界面最为友好,但 如果你不能使用 Xwindow,那么就使用 make menuconfig 好了。界面虽然比上面一个差点,总比 make con

52、fig 的要好多了。交叉编译就是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。如 keil 软件,在 keil 上编译,但在单片机上运行,典型的交叉编译。我们在开发板上运行的程序,是在 PC 机上编译的,所以是交叉编译。3.4可行性分析进行可行性分析是非常必要的,也是很重要的,本系统的可行性研究主要是参考已存在并正处于运行的类似系统和经过最初的设计目标及进行的市场调查分析为评价尺度,考虑其技术可行性、经济可行性和操作可行性。可行性研究是为了弄清楚系统开发的工

53、程如何用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得进行研究的过程,实际上进行可行性分析大大简化了系统设计的过程。3.4.1经济可行性LINUX系统属于开放源代码软件,由于LINUX系统具有稳定、平安、网络负载力强、占用硬件资源少等技术特点,自问世以来得到了迅速推广和应用,并已开展为当今世界的主流的嵌入式操作系统之一。LINUX在嵌入式的广泛应用不是偶然的,这就取决于LINUX操作系统特点。LINUX是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了LINUX的修改、编写工作

54、,程序员可以根据自己的兴趣和灵感对其进行改变。这让LINUX吸收了无数程序员的精华,不断壮大。OK6410开发板的价格也是可以接受的,且有用户指导手册,廉价开发,易于使用。3.4.2技术可行性本系统使用Qt开发,Qt具有良好的可靠性、可用性、可编程性与易用性,根本上,Qt Windows平台上的MFC、OWL、VCL、ATL是同类型的东西,但是Qt具有以下优点:1优良的跨平台特性Qt支持以下操作系统: Microsoft Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNIX 、Irix、FreeBSD

55、、BSD/OS、SCO、AIX、OS390、QNX等等;2面向对象Qt 的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的;3可用户化外观Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换;4友好的联机帮助Qt提供了大量的联机参考文档,有超文本HTML方式,也有UNIX帮助页Man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程;5便利性由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题;

56、6支持 2D/3D 图形渲染,支持 OpenGL。7丰富的 APIQt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的,甚至还包括正那么表达式的处理功能;3.4.3操作可行性本系统前台作为与用户直接交互的界面,在设计考虑功能的同时,也考虑了操作的简洁和方便性,设计了方便用户使用的按钮,如开始按钮,重来按钮,退出按钮,悔棋按钮,目的是让大多数不熟练电脑操作的客户,也能轻松的享受本系统给他们带来的便利。同时还设计了显示胜负,和积分的功能。因此该系统在操作上是可行的。第4章 系统总体设计4.1 五子棋游戏设计原那么一个好的游戏往往要遵循游戏的设计原那么,

57、主要是从实用性,先进性,兼容性和标准性上进行设计。而各个原那么的具体描述如下。1实用性原那么:确保网站具有良好的系统性能,友好的用户界面,较高的处理效率。便于管理人员使用和维护,并采用成熟的技术。2先进性原那么:采用先进而成熟的技术,使软件具有较高的技术水平和较长的生命周期。3兼容性原那么:对于所选硬件系统及平台,能很好地适应开发和使用。4标准性原那么:软件设计过程尽量按照标准进行,系统编码,操作系统平台以及所采用的开发方法也按照相应的标准。4.2 五子棋游戏的总体设计结构本系统主要包括包括绘制出棋子和棋盘,设置出开始、重来、悔棋、退出等按钮功能。用到了鼠标点击事件的处理,绘制棋子,和棋盘的函

58、数drawpixmap的使用。还有胜负显示,黑方和白方两方的积分。需要实现的的游戏重要功能:1主窗口:负责管理所有的部件,创立所有信号和槽的连接2棋盘类:绘制棋盘,把棋盘看成一个二维数组,处理鼠标点击事件,在点击处一定范围内绘制棋子,然后最主要的就是算法,就是怎么走才算赢,这个要花时间研究3积分和胜负显示,使游戏的人体会到胜利的快乐。4设计按钮,控制开始、重来、悔棋、退出等功能。第5章 系统模块设计5.1 用Qt-creator进行五子棋应用程序的主要功能实现本五子棋应用程序有绘制棋盘和棋子的功能,鼠标处理事件的实现,将鼠标坐标转换为方格子的坐标等多个主要函数。5.1.1 绘制棋盘和棋子的功能

59、void MainWindow:paintEvent(QPaintEvent* ) QPainter painter(this); QPainter greenPainter(this); greenPainter.setBrush(Qt:green); QRect rect(10,10,695,555); painter.drawPixmap(rect,*mChessboardPixmap); QRect rect1(705,220,125,131); painter.drawPixmap(rect1,*mheifangPixmap); QRect rect2(830,220,125,131

60、); painter.drawPixmap(rect2,*mbaifangPixmap); QRect rect3(690,0,331,232); painter.drawPixmap(rect3,*mbanPixmap); QRect rect4(690,352,261,261); painter.drawPixmap(rect4,*mbanPixmap); QRect temptRect; int i; for( i=0; i225; i+) if(mGameLogic.mChessRecord.mRecordi.mPoint.x()pos(); /currentX=e-x(); if(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论