当前位置:网站首页>全志V853开发板移植基于 LVGL 的 2048 小游戏
全志V853开发板移植基于 LVGL 的 2048 小游戏
2022-08-10 15:01:00 【51CTO】
项目源码获取: V853 Tina_LVGL Download
LVGL 开发实战
移植基于 LVGL 的 2048 小游戏
这一节将以一个已经编写好的 lvgl 小游戏 2048 描述如何将已经编写完成的 lvgl 程序移植到开发板上。
这里使用的 2048 小游戏由百问网提供,开源地址: lv_lib_100ask
准备脚手架
在这之前,我们先准备基础的 LVGL 脚手架。可以直接从 lv_g2d_test 里复制过来进行修改即可。
首先我们复制源码,在 platform/thirdparty/gui/lvgl-8 源码文件夹里,把 红色箭头 所指的 lv_g2d_test 的源码作为模板复制到 黄色箭头指向的 lv_2048 文件夹里。
如下图所示,并清理下 res 资源文件夹,

同样的,复制一份引索文件,找到 openwrt/package/thirdparty/gui/lvgl-8 并把 lv_g2d_test 复制一份重命名为 lv_2048 作为我们 2048 小游戏使用的引索。

脚手架快速获取: lv_g2d_test.file
并编辑 Makefile,修改文件名称,把 lv_g2d_test 修改为这里的 lv_2048
完成脚手架的搭建后,可以 make menuconfig 里查看是否出现了 lv_2048 这个选项,选中它。

修改源码
第二步是修改源码。编辑之前复制的 main.c 文件,把不需要的 lv_g2d_test 的部分删去。保留最基础的部分。
接下来则是对接 lv_lib_100ask 与 2048 小游戏,我们先下载 lv_lib_100ask 的源码,放置到 platform/thirdparty/gui/lvgl-8/lv_2048 的 src 文件夹里。并按照 lv_lib_100ask 的说明,复制一份 lv_lib_100ask_conf_template.h 到 src 目录,并改名为 lv_lib_100ask_conf.h

编辑 lv_lib_100ask_conf.h,开启整个库的引用,并配置启用 LV_USE_100ASK_2048 。为了简洁,这里删除了不需要的配置项。
再编辑 platform/thirdparty/gui/lvgl-8/lv_2048/src/lv_lib_100ask/lv_lib_100ask.h 中的版本号,修改为 (8,1,0)

之后在 main.c 里修改,对接 lv_100ask_2048_simple_test,具体如下。
(1)头文件加入 lv_lib_100ask/lv_lib_100ask.h
(2)在 main 函数里添加接口调用
完整的 main.c 如下
然后就是 Makefile 修改,增加一个 lv_lib_100ask 的 SRC 引用。
顺便也把 BIN 改为 lv_2048 ,完整的 Makefile 如下
对接触摸
做了以上操作,可能会发现触摸没有反应,这是因为触摸绑定的 event 事件号不对,默认的绑定是 event3 而查阅启动 log 可知,开发板的触摸屏对接的是 event0

这时需要修改绑定的 event 事件号,其配置文件在 lv_drv_conf.h 内:

这里将 event3 改为 event0 即可
当然除了这样的方法,另外也可以用命令生成软连接touchscreen,就会直接以 touchscreen 为触摸节点,方便调试:
测试编译
修改好了,希望单独编译这个包测试下而不编译完整的 SDK。可以这样做:
(1)确保已经 source build/envsetup.sh 并已经 lunch
(2)在任意文件夹下执行命令 mmo lv_2048 -B

其中 mmo 的意思是 单独编译一个 openWrt 软件包,后面的 lv_2048 是软件包名。-B 参数是先 clean 再编译,不加这个参数就是直接编译了。
测试运行
编译打包后,到开发板上使用 lv_2048 即可运行

边栏推荐
- "Thesis Reading" PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable
- TCP为什么是三次握手和四次挥手?
- 高薪程序员&面试题精讲系列135之你对分布式是怎么理解的?CAP理论你知道吗?
- Systemui status bar to add a new icon
- 华为云DevCloud获信通院首批云原生技术架构成熟度评估的最高级认证
- [Data warehouse design] Why should enterprise data warehouses be layered?(six benefits)
- pm2之静态文件服务
- Zhaoqi Technology Innovation High-level Talent Entrepreneurship Competition Platform
- 2022年网络安全培训火了,缺口达95%,揭开网络安全岗位神秘面纱
- SWIG教程《二》
猜你喜欢
随机推荐
Appium for APP automation testing
TestLink Export Use Case Transformation Tool
fatal error C1083 无法打开包括文件'io.h' No such file
兆骑科创高层次人才创业大赛平台,投融资对接,双创服务
【数仓设计】企业数仓为什么要进行分层?(六大好处)
Common conventions such as common SQL and API interfaces
机器学习总结(一)
Azure IoT Partner Technology Empowerment Workshop: IoT Dev Hack
Websocket realizes real-time change of chart content
systemui shield notification bar
BCG库简介
websocket实现实时变化图表内容
Meaning and names of 12 nautical miles, 24 nautical miles and 200 nautical miles
【教程】HuggingFace的Optimum组件已支持加速Graphcore和英特尔Habana芯片
MySQL 原理与优化:Update 优化
Parallels 将扩展桌面平台产品,以进一步改善在 Mac 上运行 Windows 的用户体验和工作效率
How to code like a pro in 2022 and avoid If-Else
BFT机器人带你走进智慧生活 ——探索遨博机器人i系列的多种应用
MySQL命令行导出导入数据库
fatal error C1083 Unable to open include file 'io.h' No such file








