【分享】qemu-vexpress-a9 bsp下运行LittlevGL图形库.

发布于 2018-04-11 20:56:35
    本帖最后由 liu2guang 于 2018-4-17 16:49 编辑


最近发现身边越来越多的小伙伴开始关注LittlevGL图形库,就开始萌发在RT-Thread移植LittlevGL的想法,为以后工作中可能用到需要GUI的地方打下坚实的基础(才不会告诉你是为了在群里装逼才有这个想法的)。关于LittlevGL图形库这不做过多的介绍,反正就是一个风格接近Android的GUI库....balabala.....以下省略1千万字。

下面是我在如图rt1050野火板子上移植的demo的效果图片:

LittlevGL2RTT.gif



在移植LittlevGL之前先要介绍以下LittlevGL2RTT库,LittlevGL2RTT库是在基于RTT LCD框架和LittlevGL5.1发布版做的中间层,该中间层做成了package包。

接下来就可以开始移植LittlevGL了:

1、当然是准备最新版的RT-Thread源码和env环境拉。这个不会的话请关掉该帖子,谢谢合作Thanks♪(・ω・)ノ。
2、因为LittlevGL2RTT package目前没有推送到官方package仓库中,所以在使用LittlevGL2RTT之前需要先下载支持文件: 下载附件[LittlevGL2RTT.zip]
3、将第二部下载的文件解压放到 "$ENV_ROOT/packages/packages/system/" 路径下。
1.png

4、在 "$ENV_ROOT/packages/packages/system/Kconfig" 文件中添加一行代码:
source "$PKGS_DIR/packages/system/LittlevGL2RTT/Kconfig"
3.png


5、切换到 "$RTT_ROOT/bsp/imxrt1052-evk/" 切换到目录下

8.png

6、启动env,输入menuconfig命令进入 RT-Thread online packages 再进入 system packages
选择LittlevGL2RTT库,并将库配置选择如下,并保持退出menuconfig

5.bmp
6.png

7、env中输入 pkgs --update 等待下载LittlevGL2RTT库,然后在rtconfig.h末尾添加如下宏
#define BSP_DRV_CLCD

7.png

8、env中输入 scons -j4 编译代码,并输入 .\qumu
运行程序

9.png

到这里移植就全部完成,到这里就介绍下LittlevGL2RTT,目前该库只支持framebuffer模式的LCD驱动,后面会添加读写像素模式的LCD驱动,还有的就是输入设备(触摸,鼠标等)暂时不支持,因为我还没有做,当然欢迎大家来我的github提交代码。

这里感谢LittlevGL作者的开源库,更要感谢RT-Thread这么好用的OS,支持国产支持RTT~~

如果您喜欢或者LittlevGL库,觉得顺眼的话就请在LittlevGL2RTT仓库和LittlevGL点颗小星星,小星星就是更新的动力!!!

点击跳转到LittlevGL库github.
点击跳转到LittlevGL2RTT库github.





查看更多

关注者
0
被浏览
8k
20 个回答
燕十三
燕十三 2018-04-11
虽然没玩过GUI,
但是一看就是花了很多时间!
顶起来!
来一颗糖
来一颗糖 2018-04-12
虽然没玩过GUI,
但是一看就是花了很多时间!
顶起来!
moss
moss 2018-04-12
快点添加到 package 里呀


另外有没有 u8g2 的移植
aozima
aozima 2018-04-12
拒绝白嫖,拒绝键盘侠!
小星星
tanek
tanek 2018-04-15
给流光大佬打call
bernard
bernard 2018-04-17
附件重新刷下

另外,可以尽快加入到packages中,这样使用起来才会超级容易
liu2guang
liu2guang 认证专家 2018-04-17
bernard 发表于 2018-4-17 09:12
附件重新刷下

另外,可以尽快加入到packages中,这样使用起来才会超级容易 ...


等我把接口和配置完善了,还有些问题,pr到packages中。
JasonJia
JasonJia 2018-04-27
正好也在移植littlevgl,希望早点出pack:lol
ou513
ou513 2018-06-17
用在野火rt1052板子上确实可以,但是确实没有触摸屏,添加触摸后发现lv_touchpad.c中触摸屏读取函数没有跑进来bool lv_touchpad_read(lv_indev_data_t *data),没法获取触摸屏数据。希望添加触摸功能,没有触摸屏就只显示没法操作。:dizzy:
liu2guang
liu2guang 认证专家 2018-07-03
ou513 发表于 2018-6-17 22:51
用在野火rt1052板子上确实可以,但是确实没有触摸屏,添加触摸后发现lv_touchpad.c中触摸屏读取函数没有跑 ...


因为RTT没有单独的Touch框架,所以没法适配每一个BSP,但是我提供一个`void littlevgl2rtt_send_input_event(rt_int16_t x, rt_int16_t y, rt_uint8_t state) ` 函数用于对接您的触摸驱动!
yjwpm
yjwpm 2018-07-17
按照你的方法编译后提示有问题呀,这个用的是最新的 pkgs --update的littlevgl
捕获.JPG
liu2guang
liu2guang 认证专家 2018-07-17
yjwpm 发表于 2018-7-17 19:38
按照你的方法编译后提示有问题呀,这个用的是最新的 pkgs --update的littlevgl


这个是lcd驱动问题没有找到lcd驱动
liu2guang
liu2guang 认证专家 2018-07-17
yjwpm 发表于 2018-7-17 19:38
按照你的方法编译后提示有问题呀,这个用的是最新的 pkgs --update的littlevgl


细节可以加我qq沟通1004383796
simon1
simon1 2018-09-28
请问一下,我用qemu运行qemu-vexpress-a9后,鼠标点了GUI后就消失了,需要按control+alt+g鼠标才会又出现,但是点一下后还是会消失,是为什么呢?
moss
moss 2018-12-04
    本帖最后由 moss 于 2018-12-4 23:17 编辑


2018-12-04 22_56_12-QEMU.png
哈哈,玩起来了
选择Littlevgl包后没有自动选中GUI Engine,会导致device找不到,assert
GUI Engine默认是使用的2.0但是2.0在gcc编译时有函数定义错误,要选择latest
liu2guang
liu2guang 认证专家 2018-12-05
moss 发表于 2018-12-4 22:58
哈哈,玩起来了
选择Littlevgl包后没有自动选中GUI Engine,会导致device找不到,assert
GUI Engine默认是 ...


littlevgl不需要GUI Engine的,device找不到应该是没有包含lcd驱动进去初始化,只添加lcd驱动就好了
moss
moss 2018-12-06
liu2guang 发表于 2018-12-5 15:49
littlevgl不需要GUI Engine的,device找不到应该是没有包含lcd驱动进去初始化,只添加lcd驱动就好了 ...


qemu的bsp只有选中了GUI Engine才会有lcd驱动

另外littlevgl最好选择最新版的,不然没有lcd驱动的时候不知道是哪里assert
xingyanchen
xingyanchen 2018-12-06
问一句,你汉字用的GB23312 还是UTF8啊

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览