WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2018-12-17 16:40:58

小菜
会员
注册时间: 2018-12-06
累计积分: 34

lvgl移植到裸跑的f1c100s上

在大侠达克罗德放出的《F1C100S裸奔framebuffer + PWM + GPIO驱动》基础上移植LVGL。
目前已经能够在800*480的屏幕上使用32颜色深度,跑lvgl的demo例子。
但感觉速度很慢,比在linux下使用fbdev还慢。
有时间再优化。
看看能不能用DMA实现数据传输。
源代码:
lvgl_f1c100s.zip

最近编辑记录 小菜 (2018-12-17 16:44:39)

离线

#2 2018-12-17 17:24:10

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,733

Re: lvgl移植到裸跑的f1c100s上

感谢分享!
感谢默默支持 debugdump 的网友!

离线

#3 2018-12-17 22:31:47

zzm24
会员
注册时间: 2018-05-07
累计积分: 13

Re: lvgl移植到裸跑的f1c100s上

开cache

离线

#4 2018-12-18 10:11:24

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: lvgl移植到裸跑的f1c100s上

zzm24 说:

开cache

开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。

离线

#5 2018-12-18 11:24:06

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 46

Re: lvgl移植到裸跑的f1c100s上

小菜 说:
zzm24 说:

开cache

开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。

你看这个帖子: https://whycan.cn/t_1457_2.html  也是裸跑的,并不卡。
能否把视频效果放出来参考参考?

最近编辑记录 duckduckgo (2018-12-18 11:27:00)

离线

#6 2018-12-18 17:36:13

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: lvgl移植到裸跑的f1c100s上

duckduckgo 说:
小菜 说:
zzm24 说:

开cache

开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。

你看这个帖子: https://whycan.cn/t_1457_2.html  也是裸跑的,并不卡。
能否把视频效果放出来参考参考?

我刚试了周立功移植过来的那个程序也是卡,难道是我的板子有问题?

离线

#7 2018-12-18 17:58:42

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,733

Re: lvgl移植到裸跑的f1c100s上

确实有点卡,zlg gui那个demo我在480x272液晶上面跑正常

离线

#8 2018-12-18 19:50:09

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: lvgl移植到裸跑的f1c100s上

我的是800*480,感觉这个不带系统的和linux下的速度差不多,是不是lvgl本身的问题。

离线

#9 2018-12-18 20:04:37

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,733

Re: lvgl移植到裸跑的f1c100s上

xboot里面有一个lvgl分支,速度比你这个要快,你参考下

离线

#10 2018-12-20 11:18:27

zhenfanhei
会员
注册时间: 2018-01-18
累计积分: 222
个人网站

Re: lvgl移植到裸跑的f1c100s上

用16位色深效果会好些么?

离线

#11 2018-12-20 17:15:46

科技植
会员
注册时间: 2018-11-05
累计积分: 34

Re: lvgl移植到裸跑的f1c100s上

关于你这个lvgl的视频。我大概清楚。我当时是在NUC972上运行的这个程序(运行在linux操作系统下),效果也是你这样。这主要是弹出动画以及lvgl下main.c里,的usleep(10000)导致的。你在main.c中,找到这个函数,报10000改成比如100。键盘的弹出动画效果就快得飞起了

离线

#12 2018-12-20 17:35:50

lilo
会员
注册时间: 2017-10-15
累计积分: 214

Re: lvgl移植到裸跑的f1c100s上

我也看了一下代码

int boot_main(int argc, char **argv) {   
    lv_init();
    /* Do initial mem pool */
    do_init_mem_pool();
    do_init_dma_pool();

        fb_f1c100s_init(&fb_f1c100s);
        render = fb_f1c100s_create(&fb_f1c100s);

        for (int i = 0; i < render->pixlen/4;i++)
        {
            ((uint32_t*)render->pixels)[i ] = 0xffffffff;
        }
        fb_f1c100s_present(&fb_f1c100s, render);
        fb_f1c100s_setbl(&fb_f1c100s, 100);   

    lv_disp_drv_t disp_drv;
    lv_disp_drv_init(&disp_drv);
    disp_drv.disp_flush = fbdev_flush;     
    lv_disp_drv_register(&disp_drv);

    demo_create();

    while(1)
    {
        lv_tick_inc(5);
        lv_task_handler();
        delay(1000);
    }
    return 0;
}

粗体 delay(1000); 这个是多余的, 没必要延时.

离线

#13 2018-12-23 20:31:51

tango_zhu
会员
注册时间: 2018-04-12
累计积分: 29

Re: lvgl移植到裸跑的f1c100s上

这个延时去掉的话 cpu都被lvgl用了  别的也就干不了什么事情了

离线

#14 2018-12-27 17:20:48

Quotation
会员
注册时间: 2018-10-04
累计积分: 97

Re: lvgl移植到裸跑的f1c100s上

应该在主循环里每隔多少时间(比如30ms)调用一下
        lv_tick_inc(5);
        lv_task_handler();

其余的时间用来做别的。
并且lv_tick_inc的参数应当等于两次调用之间的时间间隔,否则动画会快慢不对。

离线

#15 2019-05-17 13:59:45

hzqlz
会员
注册时间: 2018-03-23
累计积分: 11

Re: lvgl移植到裸跑的f1c100s上

多谢分享

离线

页脚