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

电子说

1.2w人已加入

描述

本文导读

如何在嵌入式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,笔者决定寻求“某度”帮助。在某论坛下载到源码,我们先测试下是否报错。下载得到的源码如下图。

贪吃蛇源码

在源码目录下执行“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板。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分