龙芯技术社区
直播中

HonestQiao

8年用户 545经验值
擅长:嵌入式技术
私信 关注

【广东龙芯2K500先锋板试用体验】龙芯2K500丝滑体验LVGL demo

首先,给上钊哥评语:
image.png

然后,请出今天的主角:龙芯2K500 + LVGL v8
image.png
屏用的是第三方出的,兼容龙芯官方推荐的正点原子4.3寸RGB屏。

首先需要准备好交叉编译环境。这可以使用官方资料包中的交叉工具链:
image.png
我使用的是 foxsen76/loongarch-assembly docker环境:
docker pull foxsen76/loongarch-assembly:v2

编译环境准备好以后,可以直接下载LVGL的linux port代码:

git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git
cd lv_port_linux_frame_buffer/
git submodule update --init --recursive

然后,需要设置编译器CC为LoongArch对应的交叉编译工具,方式如下:
export CC=loongarch64-unknown-linux-gnu-gcc

然后就可以编译代码了:
make

正常编译完成后,会生成demo文件:
image.png

如果在较新的Linux系统,或者龙芯2K500的系统上查看这个文件,可以看到更准确的信息:
image.png

可以将这个文件,传送到龙芯2K500的系统,然后执行。根据交叉编译环境的不同,可能会出现如下的错误提示:
image.png

在之前的file demo重,可以看到需要 /lib64/ld-linux-loongarch-lp64d.so.1 ,而板子上的系统中,没有这个文件:
image.png

可以从交叉编译环境中,将对应的文件拷贝过来即可。
在实际使用中,还会存在GLIBC_2.36找不到或者版本过低的问题。
因此,需要将涉及到的几个so文件,一并拷贝过来。
image.png

再做一个ld-linux-loongarch-lp64d.so.1的软链接:ln -s /root/depends/ld-linux-loongarch-lp64d.so.1 /lib64/

然后就可以用下面的命令运行了:
env LD_PRELOAD="/root/depends/libc.so.6:/root/depends/libm.so.6" /root/demo

不过,运行的时候,会提示EDEV的问题,这是因为触摸设备没有配置好。
龙芯2K500系统重,可以查看当前的输入设备:
ls -lh /dev/input
其中event0表示键盘,event1表示触摸。
我们可以用下面的指令,分别测event0、event1:

cat /dev/input/event0 | hexdump
cat /dev/input/event1 | hexdump

那一条指令执行后,然后点击触摸屏有反应,那就说明触摸屏对应哪一个:

image.png

然后修改lvgl的设备配置文件:lv_drv_conf.h,参考下图修改对应的设备编号,然后重新编译,再上传到开发板,就能成功运行了。

image.png

LVGL demo跑起来后,可以在屏幕滑动或者点击操作,运行效果,确实是非常的流畅,一个字:爽,两个字:丝滑!!!

具体效果见视频:

龙芯2K500 LVGL测试

更多回帖

发帖
×
20
完善资料,
赚取积分