ARM的移植和游戏设计方案.docx

上传人:b****5 文档编号:7477183 上传时间:2023-01-24 格式:DOCX 页数:6 大小:23.65KB
下载 相关 举报
ARM的移植和游戏设计方案.docx_第1页
第1页 / 共6页
ARM的移植和游戏设计方案.docx_第2页
第2页 / 共6页
ARM的移植和游戏设计方案.docx_第3页
第3页 / 共6页
ARM的移植和游戏设计方案.docx_第4页
第4页 / 共6页
ARM的移植和游戏设计方案.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

ARM的移植和游戏设计方案.docx

《ARM的移植和游戏设计方案.docx》由会员分享,可在线阅读,更多相关《ARM的移植和游戏设计方案.docx(6页珍藏版)》请在冰豆网上搜索。

ARM的移植和游戏设计方案.docx

ARM的移植和游戏设计方案

封面

作者:

PanHongliang

仅供个人学习

ARM7的移植和游戏设计

俞建定叶军严洁卿

【摘要】

实时操作系统的使用,能够简化嵌入式系统的应用开发,有效地确保稳定性和可靠性,便于维护和二次开发。

μC/OS-II是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性,除此以外,μC/OS-II的鲜明特点就是源码公开,便于移植和维护。

本文介绍如何将µC/OS-II操作系统移植到LPC2210,同时运用一种适用于uC/OS-II的图形界面——ZLG/GUI来实现贪食蛇游戏。

【关键字】实时操作系统µC/OS-II,ZLG/GUI,LPC2100,移植

【Abstract】

Theapplicationofthereal-timeoperationsystemcouldpredigestthedevelopmentprocessofEmbeddedsystem,andguaranteethestabilityandreliabilityofit,aswellasmakeiteasytomaintainandre-developtheembeddedsystem.μC/OS-IIisareal-timeandmultitaskkernelbasedonasocalled”anticipatedway”,itcouldbesolidifiedandcut,withveryhighstabilityandreliability.Besides,μC/OS-IIpublishesitsoriginalcode,andthisverytraitmakeitconvenientformigratingandmaintaining.

thisarticledescribeshowtoMigratingonLPC2210singlechipprocessorsandintroducestheprocessofprogrammingthegluttonysnakewithZLG/GUI,oneofGUI’sforuC/OS-II.

【Keyword】TheReal-Timeoperationsystem,ZLG/GUI,LPC2100,Migrating

一.引言

当谈到进行嵌入式系统开发时,开发平台也是不可缺少的。

开发平台通常具有多种功能和丰富的接口,用户只需要在上面进行应用程序开发就可以了,这样可以大大节约工程的开发周期,ARM7微处理器处理速度快、超低功耗、应用前景广泛、价格低廉,又由于µC/OS-II采用C语言和汇编语言,其中绝大部分用C语言,结构非常简洁,同时µC/OS-II可移植性非常好,很容易就能被移植到各种微处理器上,而且在移植过程中,用户只需要做少量的工作即可,以及µC/OS-II具备了实时操作系统的全部性能,非常适合初次接触嵌入式技术的初学者和工作人员作为学习嵌入式技术使用。

ZLG/GUI是一款嵌入式系统简易的图形用户界面,它提供了最基本的画点、线、圆形、圆弧、椭圆形、矩形、正方形和填充等功能,较高级的接口功能,由ASCII显示、汉字显示、图形显示、窗口和菜单等,支持单色、灰度、伪彩和真彩等图形显示设备。

二.移植µC/OS-II

要移植一个操作系统到一个特定的CPU体系结构上并不是一件很容易的事情,它对移植者有以下要求:

1.对目标体系机构要有很深的了解;

2.对OS原理要有较深入的了解;

3.对所使用的编译器要有较深入的了解;

4.对需要移植的操作系统要有相当的了解;

5.对具体适用的芯片也要有一定的了解;

根据µC/OS-II的要求,移植µC/OS-II到一个新的体系结构上需要提供2个或3个文件:

OS_CPU.H(C语言头文件)、OS_CPU_C.C(C程序源文件)及OS_CPU_A.ASM(汇编程序源文件)。

2.1编写应用程序

移植µC/OS-II是为了在自己的系统使用µC/OS-II。

要在自己的系统中使用µC/OS-II编写自己的应用程序,就必须遵守µC/OS-II的编程规范。

下面的程序清单为应用程序的main()函数以及相关的代码,

应用程序主函数:

intmain(void)

{

OSInit()。

OSTaskCreate(Task0,(void*)0,&TaskStk0[TaskStkLengh-1],3)。

//创建任务0KeyMbox=OSMboxCreate(NULL)。

//建立一个邮箱,用于传递按键消息

OSStart()。

return0。

}

在使用µC/OS-II提供的任何功能之前,必须调用函数OSInit(),它完成µC/OS-II的初始化并建立空闲任务,在开始多任务之前,必须建立至少一个用户任务(不包括µC/OS-II的空闲任务),这是通过调用函数OSTaskCreate()或函数OSTaskCreateExt()实现。

最后函数main()调用函数OSStart()将控制权交给µC/OS-II内核,main()函数也就结束了。

然后编写任务的代码,µC/OS-II规定任务是不允许返回的,不过程序一般通过死循环实现,或者通过调用函数OSRaskDel()来实现。

任务代码框架如下:

VoidTask0(void*pdata)

{

Pdata=pdata。

//避免编译警告

TargetInit()。

//目标板初始化

For(。

{

程序代码;

}

}

2.2实现目标简介

将µC/OS-II移植到LPC2210上,利用µC/OS-II的任务管理系统对于所有的任务进行管理调度。

建立三个任务(不包括空闲任务),其中一个高优先级的任务一直实现液晶初始化,显示开机画面和定义游戏的暂停开始及退出按键;另外两个低优先级的任,分别实现游戏方向键定义和游戏运动画面等功能。

任务0一开始初始化液晶,显示游戏的开机画面,然后创建任务1和任务2并将任务2挂起,处于待开始阶段,然后建立一个死循环,用来不停地扫描键盘,实现游戏的退出、暂停、恢复游戏等功能。

任务1则定义开始游戏后的方向键,其中扫描键盘之前建立一个邮箱,当有按键时将按键信息发送到邮箱,然后根据要实现的功能从邮箱中取回按键值实现游戏的控制功能,然后将邮箱清空。

任务2则创建贪食蛇游戏的运动轨迹,定义游戏中的边界,绘制贪食蛇游戏中的豆子,和定义游戏是否结束。

游蛇运动采用了连续赋值的思路,首先开始游戏的时候绘制蛇头、蛇身、和蛇尾,其中将蛇尾定义成结构体,并定义蛇尾的坐标为snake.a[0]和snake.b[0],分别为蛇尾的横坐标和纵坐标。

然后游蛇蛇头向前运动,并将原先的蛇头坐标赋给蛇身,蛇身原先的坐标赋给蛇尾,如果蛇身增长则把蛇尾原先坐标赋给增加的蛇身,然后擦除游蛇左右一节图形。

在任务2执行的时候任务0和任务1都同在执行,同时为了保证按键的准确,按键的延时时间小于绘制游蛇的延时时间。

三.系统的设计与实现

3.1硬件系统构架

硬件部分的主要是由外部Flash存储器、按键电路、JTAG接口、液晶接口。

采用的液晶模块为RT240128A作为图形界面的输出显示。

RT240128A点阵图形液晶模块的点像素为240×128点白色字/蓝色底STN液晶屏,视角为6:

00内嵌控制器为东芝公司的T6963C外部显示存储器为32K字节模块的电路

原理框图如下图所示

图3.1液晶原理图

EasyARM2200开发板可以直接支持RT240128A点阵图形液晶模块或相兼容的液晶模块应用连接电路如图5.23所示采用8位总线方式连接RT240128A点阵图形液晶模块的没有地址总线显示地址和显示数据均通过DB0DB7接口实现由于模块工作电源是5V而LPC2210的I/O电压为3.3V所以在总线上串接470保护电阻图形液晶模块的C/D与A1连接用于控制模块处理数据/命令将C/D与A1连接有一个好处就是LPC2210可以使用16位总线方式操作该图形液晶模块(高8位数据被忽略)模块的片选信号由LPC2210的A22和外部存储器BANK3片选CS3相或后得到当A22和nCS3同时为0时模块被选中所以其数据操作地址为0x83000000命令操作地址为0x83000002,使用LPC2210的总线对RT240128A点阵图形液晶模块操作控制前先要设置芯片的外部存储器控制器(EMC)。

液晶与ARM7连接电路图如下图所示:

图3.2液晶连接电路图

设计中的图形用到了GUI_ClearSCR()、GUI_RectangleFill()、GUI_LoadPic()个函数,其中贪食蛇的蛇和食物是通过用字模工具将用图像处理工具处理好的图片转换成字模得到,用GUI_RectangleFill()实现绘制游蛇边界和擦除图片的功能,用GUI_LoadPic()则调用字模生成的图片显示在液晶上。

下面介绍这几个函数的使用。

1.GUI_ClearSCR()功能是清屏,入口参数和出口参数均无

voidGUI_ClearSCR(void)

{

GUI_FillSCR(0x00)。

}

其中GUI_FillSCR()是全屏填充,直接使用数据填充显示缓冲区,入口参数:

dat填充的数据(对于黑白色LCM,为0的点灭,为1的点显示),出口参数:

无。

2.GUI_RectangleFill()功能是填充矩形。

画一个填充的矩形,填充色与边框色一样。

入口参数:

x0矩形左上角的x坐标值

y0矩形左上角的y坐标值

x1矩形右下角的x坐标值

y1矩形右下角的y坐标值

color填充颜色

出口参数:

当color为1时则起到了填充的作用,当为0时起到了在一定范围内擦除图形的作用。

3.3按键控制

按键控制通过消息邮箱机制实现的。

消息邮箱(简称邮箱)是µC/OS-II中的另一种通信机制,可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。

通常该指针指向一个包含了“消息”的特定数据结构。

3.4游戏设计

在游戏程序中,主任务0主要完成一些初始化的工作,开机画面的显示。

在任务2种一开始将屏幕清屏,然后绘制贪食蛇游戏的边界和计分状态,最后进入一个无限循环,在循环体中根据游戏者的按键进行相应的处理,详细流程图如下图所示:

Reset键暂停键

方向键

图3.3贪食蛇吃豆的任务流程图

蛇的动态显示建立在任务2,主要是不停的更新蛇的位置,另外每更新一次还需要判断蛇是否碰到边界,是否碰到自己身子,是否吃到豆子等。

其流程图如下图所示:

更新豆子

蛇身各坐标赋值

延时

结束语

本文提出了一个应用来介绍了ARM7的移植研究。

在深刻研究µC/OS-II的任务管理的前提下,利用uC/OS-II的图形界面——ZLG/GUI来实现贪食蛇游戏。

这套应用于多任务控制的特点,从而进一步简化系统开发的可操作性、可修改,维护性。

整个系统功能实现、演示操作方面,都已取得了较好的成果。

本课题获得省教委《蓝牙技术在气压检测中的应用》资助工程,课题编号2004340。

[参考文献]

[1]JeanJ.Labrosse著,邵贝贝译.嵌入式实时操作系统µC/OS-II(第2版)北京航空航天大学出版社北京2003年5月第1版

[2]王田苗.《嵌入式系统设计与实例开发——基于ARM微处理器与µC/OS-II实时操作系统(第二版)》清华大学出版社北京2003年10月第2版

[3]《嵌入式应用程序开发综合实验9例—基于博创ARM300教案平台和各类手持设备》清华大学出版社2004年6月第1版

[4]LPC2210/222016/32-bitARMmicrocontrollers。

flashlesswith64kB,with10-bitADCandexternalmemoryinterfaceRev.02—30May2005

[5]《ARM嵌入式系统实验教程

(一)》北京航空航天大学出版社,周立功等编著

[6]《ARM嵌入式系统软件开发实例》北京航空航天大学出版社,周立功等编著

俞建定:

男,1968.8,1991年宁波大学应用物理系毕业,获学士学位,实验师,91年至今一直从事教案和科研工作,科研主要从事电子产品设计及自动控制的开发研究工作;研究成果曾获省教育厅科技进步三等奖,宁波市科技进步二等奖等。

主持或参与的多项国家、省教委工程,发表文章10余篇。

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.

用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1