首先,给上钊哥评语:
然后,请出今天的主角:龙芯2K500 + LVGL v8
屏用的是第三方出的,兼容龙芯官方推荐的正点原子4.3寸RGB屏。
首先需要准备好交叉编译环境。这可以使用官方资料包中的交叉工具链:
我使用的是 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文件:
如果在较新的Linux系统,或者龙芯2K500的系统上查看这个文件,可以看到更准确的信息:
可以将这个文件,传送到龙芯2K500的系统,然后执行。根据交叉编译环境的不同,可能会出现如下的错误提示:
在之前的file demo重,可以看到需要 /lib64/ld-linux-loongarch-lp64d.so.1 ,而板子上的系统中,没有这个文件:
可以从交叉编译环境中,将对应的文件拷贝过来即可。
在实际使用中,还会存在GLIBC_2.36找不到或者版本过低的问题。
因此,需要将涉及到的几个so文件,一并拷贝过来。
再做一个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
那一条指令执行后,然后点击触摸屏有反应,那就说明触摸屏对应哪一个:
然后修改lvgl的设备配置文件:lv_drv_conf.h,参考下图修改对应的设备编号,然后重新编译,再上传到开发板,就能成功运行了。
LVGL demo跑起来后,可以在屏幕滑动或者点击操作,运行效果,确实是非常的流畅,一个字:爽,两个字:丝滑!!!
具体效果见视频:
更多回帖