0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于嵌入式linux开发板的贪吃蛇游戏运行

AGk5_ZLG_zhiyua 来源:未知 作者:工程师曾玲 2018-09-23 14:08 次阅读

本文导读

如何在嵌入式linux开发板上运行贪吃蛇游戏呢?本文以EasyARM-i.MX283A为硬件载体,简述其运行贪吃蛇小游戏的方法及步骤。

1

原料准备

硬件方面

使用ZLG致远电子提供的EasyARM开源套件。EasyARM-i.MX283A采用NXP的ARM9核心,运行专为嵌入式linux产品裁剪的uboot、kernel及rootfs,其丰富的外设资源及完善的驱动支持为日常学习及项目评估提供坚实基础。该板默认支持TFT-4.3液晶显示屏,搭配USB串口线、网线等必要配件即可快速上手。

ZLG致远电子EasyARM-i.MX283A开源套件

软件方面

使用linux宿主机。嵌入式linux的开发大多使用ubuntu系统,可以从 Ubuntu 官网下载的 ISO 镜像,安装后得到纯净的 Ubuntu,再搭建嵌入式linux开发环境。建议使用ZLG致远电子官网提供的Ubuntu系统,该系统已经安装了完整的嵌入式 Linux 开发环境。

Ubuntu开发环境

2

环境搭建

宿主机方面

需要在VMware下运行ubuntu系统,并且正确安装linux-arm交叉工具链及qt-sdk。

交叉工具安装比较简单,将EasyARM-i.MX283A资料中的“gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar”解压到ubuntu的/opt(或其他)目录下,再在“profile”或“bashrc”中export即可。若在任意shell中输入“arm-none”,按TAB键后可自动补全下图“arm-none-linux-gnueabi-”则证明工具链安装成功。

安装交叉编译器

安装qt-sdk的主要目的是获取QT库及qmake工具。在ubuntu联网的情况下使用命令“sudo apt-get install qt-sdk”获取并安装qt-sdk,若失败请先执行“sudo apt-get update”更新源。安装成功后,会在/usr/bin/目录下产生两个可执行文件 qmake 和 qmake-qt4,如下图。分别打印信息可知qmake是嵌入式版本的指令,qmake-qt4是桌面版本的指令。

安装qmake

目标机方面

EasyARM-i.MX283A需要执行的操作较少,需要的qt库已经交叉编译后移植上去,我们需要关注的主要是使用SSH工具登录到开发板上,并于宿主机通过NFS建立文件共享,以便将编译好的可执行文件拷贝到开发板。当然,使用U盘或者SD卡拷贝也行,只不过频繁的插拔、挂载操作显得特别麻烦。

宿主机目标板间的文件拷贝

3

测试源码

本文的重点在于体验嵌入式linux平台下的游戏运行,代码的书写不是今天的重点呦。So,笔者决定寻求“某度”帮助。在某william hill官网 下载到源码,我们先测试下是否报错。下载得到的源码如下图。

贪吃蛇源码

在源码目录下执行“qmake-qt4 -project”生成qt工程,再执行“qmake-qt4”编译工程得到Makefile文件,最后执行“make”命令得到可执行文件。

编译贪吃蛇

这个snake-demo可执行程序就是我们要得结果了,执行它游戏将开始运行。

运行贪吃蛇

4

编译ARM版本

测试源码没有报错,下面进行ARM版本的编译。前面我们提到,qmake-qt4是桌面版的qmake工具,qmake是ARM版本的qmake工具,因此本次使用qmake在源码目录重复第3小节的编译步骤。得到的文件看起来和原来没什么区别,执行“./snake-demo”会提示“无法执行二进制文件”,通过两者的Makefile文件和“file”命令的查看,通过对比确认此时的snake-demo就是我们需要的,详情见下图。

qmake-qt4与qmake执行对比

将此文件拷贝到开发板上并执行。是不是有哪里不对劲?没错,中文无法显示。

EasyARM-i.MX283A的QT库默认不支持中文,需要给它更新个中文字库。

缺少中文库

网络上下载ttf格式的中文字库,拷贝到开发板的/opt目录下。“QT_QWS_FONTDIR”环境变量为qt应用程序提供字库寻找路径,更新它。在shell下执行“export QT_QWS_FONTDIR=/opt”,并在程序执行是添加执行参数指定字库名“./snake-demo -qws -font wqy-microhei”。OK,点击触摸屏操作小小贪吃蛇吧!

添加中文支持

5

结语

EasyARM-i.MX28x系列开源套件在致远电子淘宝官方店有售,若您准备用作实际项目开发,强烈建议您选用工业级EPC系列ARM板。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19118

    浏览量

    305008
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209430

原文标题:“贪吃蛇”带你玩转linux

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    贪吃蛇游戏

    编的简单的贪吃蛇游戏
    发表于 05-05 16:40

    用超核开发板写的贪吃蛇

    `好久之前买的超核k60开发板,写的贪吃蛇`
    发表于 01-21 16:11

    贪吃蛇游戏

    贪吃蛇游戏的下载
    发表于 03-04 18:24

    贪吃蛇游戏的威廉希尔官方网站 实现

    最近william hill官网 好冷清,在此发一贴暖暖身,回到正题,大家都玩过“贪吃蛇游戏,用代码实现该游戏想必难不倒大神,在网上也有一大堆针对该游戏的代码实现,如果摆脱代码,用硬件来实现“
    发表于 11-19 17:52

    贪吃蛇游戏

    Labview制作贪吃蛇游戏,值得学习研究
    发表于 09-07 21:39

    【FPGA DEMO】Lab 9:贪吃蛇游戏

    基于Perf-V开发板,实现贪吃蛇游戏的设计。实验中用开发板上key1-key4按键来控制小蛇的移动,VGA设计该游戏的界面。基本步骤如上
    发表于 07-30 15:53

    基于arm的嵌入式LCD显示屏贪吃蛇游戏

    基于arm的嵌入式LCD显示屏贪吃蛇游戏开始界面选择挑战模式,随机产生目标食物,触摸显示屏,控制身移动,吃到食物时身加长,分数加一,达到
    发表于 11-08 07:09

    利用LED矩阵、 键盘编写一个简单的贪吃蛇游戏

    是进一步熟练前面学过的知识,体验嵌入式开发的过程。而且有了键盘和LED矩阵的驱动、C语言贪吃蛇程序,任务的关键就是明确各个接口:1、嵌入式开发板的LED矩阵接口。2、嵌入式开发板的键盘
    发表于 12-15 09:20

    如何利用QT去制作一个贪吃蛇的小游戏

    如何利用QT去制作一个贪吃蛇的小游戏呢?并将其移植到嵌入式Linux平台下呢?
    发表于 12-23 09:37

    基于stm32的贪吃蛇游戏的设计资料分享

    指南者开发板上,使其能在触摸屏上显示,并且添加了暂停/继续的触摸按键以及简单的游戏结束显示,大体再现了贪吃蛇这款小游戏。一、主要功能上图是整个显示屏的布局以及对应功能。
    发表于 02-21 07:27

    贪吃蛇游戏设计贪吃蛇收尾基本完成

    电子发烧友网站提供《贪吃蛇游戏设计贪吃蛇收尾基本完成.rar》资料免费下载
    发表于 03-24 23:06 4次下载

    贪吃蛇游戏java源代码

    贪吃蛇游戏java源代码
    发表于 12-27 17:56 9次下载

    基于LabVIEW的贪吃蛇游戏源代码

    基于LabVIEW的贪吃蛇游戏源代码
    发表于 04-22 09:27 74次下载

    嵌入式贪吃蛇

    基于arm的嵌入式LCD显示屏贪吃蛇游戏开始界面选择挑战模式,随机产生目标食物,触摸显示屏,控制身移动,吃到食物时身加长,分数加一,达到
    发表于 11-03 13:51 10次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>贪吃蛇</b>

    基于stm32的贪吃蛇游戏

    野火指南者开发板上,使其能在触摸屏上显示,并且添加了暂停/继续的触摸按键以及简单的游戏结束显示,大体再现了贪吃蛇这款小游戏。一、主要功能上图是整个显示屏的布局以及对应功能。
    发表于 12-24 19:32 21次下载
    基于stm32的<b class='flag-5'>贪吃蛇</b>小<b class='flag-5'>游戏</b>