您尚未登录。

楼主 # 2022-01-15 00:32:24

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

F1C200 linux LVGL双缓冲支持

看到LVGL支持了DRM,按道理F1C200的驱动情况下也能支持双缓冲效果。
简单的测试了下,支持还是很可以的,看上去也就是CPU有点高。
对比了下CPU和top看到的存在较大的差异,可能计算方式不一样吧?

修改使用tslib的ts_uinput来校准输入,模拟为event1
修改使用libdrm的输出,输出双缓冲。

验证代码,应该要修改下Makefile的CFLAGS下的路径
https://github.com/shaoxi2010/lv_port_linux_frame_buffer

离线

楼主 #2 2022-01-23 20:24:03

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

可能是编译没选对吧,看下二进制的架构信息吧

离线

楼主 #5 2022-01-27 11:06:46

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

不同内核修改方法是不一样的,这个是4.19的修改方法, 将sun4i_frambuffer.c的32修改为16就行了。
我记得5.4应该是要修改panle属性还是什么来着,已经忘记了。

int sun4i_framebuffer_init(struct drm_device *drm)
{
	drm_mode_config_reset(drm);

	drm->mode_config.max_width = 8192;
	drm->mode_config.max_height = 8192;

	drm->mode_config.funcs = &sun4i_de_mode_config_funcs;
	drm->mode_config.helper_private = &sun4i_de_mode_config_helpers;

	return drm_fb_cma_fbdev_init(drm, 16, 0);
}

离线

楼主 #7 2022-01-27 13:12:37

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

因为用的是ts_uinput,会将原始坐标做一次tslib转换后再生成新的event设备为符合屏幕转换的点信息。
所以没有用tslib驱动,用的evdev驱动

离线

楼主 #9 2022-01-27 13:30:07

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

恩,加个-d就是一个后台的daemon程序

离线

楼主 #11 2022-01-27 16:16:49

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

挺好用的,最开始是因为qt5的tslib驱动不支持旋转,然后就用了这个方案了。

离线

楼主 #14 2022-03-08 17:37:58

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 367
积分: 316

Re: F1C200 linux LVGL双缓冲支持

lvgl的drm驱动实现我也不是很了解,看他们描述说的是VSYNC信号的同步等待引起的,
但是按理说应该不会引起CPU上升这么多,你可尝试改小usleep值看下呢降低任务延迟看看。
CPU的值你可以去top看看,lvgl的实际值确实要比top统计的高不少,不确定它的计算标准。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn