网站建设和软件开发哪个有前途,手机商城网站制作,wordpress+手机应用,班级展示网站若该文为原创文章#xff0c;转载请注明原文出处。 本文介绍嵌入式轻量化图形库LVGL 8.2移植到Linux开发板ATK-RK3568上的步骤。
主要是参考大佬博客#xff1a;
LVGL v8.2移植到IMX6ULL开发板_lvgl移植到linux-CSDN博客
一、环境
1、平台#xff1a;rk3568
2、开发板:…若该文为原创文章转载请注明原文出处。 本文介绍嵌入式轻量化图形库LVGL 8.2移植到Linux开发板ATK-RK3568上的步骤。
主要是参考大佬博客
LVGL v8.2移植到IMX6ULL开发板_lvgl移植到linux-CSDN博客
一、环境
1、平台rk3568
2、开发板: ATK-RK3568正点原子板子
3、环境buildroot
4、虚拟机正点原子提供的ubuntu 20
二、源码下载
本文档针对LVGL 8.2版本在Linux IMX6ULL开发板上移植LVGL需要下载的源码如下 lvglhttps://github.com/lvgl/lvgl.git
lv_drivershttps://github.com/lvgl/lv_drivers.git
lv_port_linux_frame_bufferhttps://github.com/lvgl/lv_port_linux_frame_buffer.git
lvgl包含了LVGL基本的源码以及官方给出的LVGL demo lv_drivers包含了大多数设备的显示控制器和触摸驱动程序主要用来指定显示屏使用哪一种驱动框架包括FB、DRM等驱动程序框架
lv_port_linux_frame_buffer主函数文件所在的目录整个工程的主文件夹lvgl和lv_drivers都应放在此目录下。
可以在具有代理服务器的情况下克隆上述三个仓库的源码 git clone -b release/v8.2 https://github.com/lvgl/lv_port_linux_frame_buffer.git git clone -b release/v8.2 https://github.com/lvgl/lvgl.git git clone -b release/v8.2 https://github.com/lvgl/lv_drivers.git 三、移植过程
先将下载好的源码文件夹lvgl和lv_drivers放在lv_port_linux_frame_buffer的路径下 1、修改lv_conf.h
打开lv_conf.h第15行检查文件是否使能如果没使能使能该文件应该将#if后面的0改为1。 第27行将宏LV_COLOR_DEPTH设置为32
根据测试得知正点原子的MIPILCD是32位所以改成32 第48至67行的代码片段将LV_MEM_CUSTOM设置为1则表示使能显存分配 第80行至84行的代码设置的是屏幕的刷新时间单位是毫秒(ms)。我们将其中的30ms改为10ms。 第86至92行的代码设置的是心跳时间在主函数文件main.c中有一个custom_tick_get的函数用于之后的事件响应编程和定时任务编程若此功能没有使能则点击屏幕上的组件将没有响应。 第671行为了看到移植的效果我们先使能官方的demo来检测是否移植成功 2、修改lv_drv_conf.h
此文件用于配置显示屏所使用的底层驱动我们使用FB驱动框架来点亮LCD屏所以对于此文件的修改有测试过DRM但没编译成功DRM自行修改测试。
第11行先使能此文件将“#if 0”改为“#if 1” 第318行使能FBDEV的驱动将宏USE_FBDEV改为1 第441行使能鼠标或者触摸板作为evdev界面将USE_EVDEV设置为1
第450行指定evdev设备节点的路径把/dev/input/event0修改成/dev/input/event2
对应于event文件然而/dev/input下有可能有多个event文件此时我们可以用hexdump命令来检测
hexdump event1
运行上面的命令之后再点击LCD屏一下如果发现终端输出了一大堆十六进制数则说明LCD的evdev的输入设备节点是它否则就换一个event文件进行测试。
第453行设置显示屏的分辨率EVDEV_HOR_MAX和EVDEV_VER_MAX我使用的是5.5寸MIPI屏分辨率为720*1280。所以两个宏分别设置为720和1280。 evdev是输入设备的配置只有使能了evdev触摸屏幕才会有反应。
3. 修改main.c文件
在main.c文件里面我们主要修改其中包含的头文件、使用的驱动类型以及demo函数等。
第10行修改显示缓冲区的大小即720*1280分辨率的大小 第27至34行的代码部分这一段是初始化和设置显示驱动的部分 第46至50行我们不使用鼠标作为LCD显示屏的输入设备所以mouse部分将它注释掉 第54行这里面告诉了我们搭建整个LVGL应用程序的函数为lv_demo_widgets通过查看main.c的头文件就可以知道这个函数在“lvgl/demos/widgets/lv_demo_widgets.c”中定义。
4、修改Makefile文件
第4行将CC编译器修改为自己的交叉编译器修改如下 注释掉第20行使其不能编译鼠标输入设备的源码 四、源码编译
源码修改完成之后把源码拷贝进虚拟机虚拟机先运行下面命令设置交叉工具链
export CC/opt/atk-dlrk356x-toolchain/usr/bin/aarch64-buildroot-linux-gnu-gcc
没设置会出现下面错误 执行后编译
make -j4把demo_test上传到开发板上运行 结果正常 如有侵权或需要完整代码请及时联系博主。