在大侠达克罗德放出的《F1C100S裸奔framebuffer + PWM + GPIO驱动》基础上移植LVGL。
目前已经能够在800*480的屏幕上使用32颜色深度,跑lvgl的demo例子。
但感觉速度很慢,比在linux下使用fbdev还慢。
有时间再优化。
看看能不能用DMA实现数据传输。
源代码:
lvgl_f1c100s.zip
最近编辑记录 小菜 (2018-12-17 16:44:39)
离线
开cache
离线
开cache
开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。
离线
zzm24 说:开cache
开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。
你看这个帖子: https://whycan.cn/t_1457_2.html 也是裸跑的,并不卡。
能否把视频效果放出来参考参考?
最近编辑记录 duckduckgo (2018-12-18 11:27:00)
离线
小菜 说:zzm24 说:开cache
开了Icache和Dcache是好点了,但是还是感觉卡。我原来用的一个120MHz的MIPS(估计配置下来也就90多M)的片子跑GUI,很流畅。
你看这个帖子: https://whycan.cn/t_1457_2.html 也是裸跑的,并不卡。
能否把视频效果放出来参考参考?
我刚试了周立功移植过来的那个程序也是卡,难道是我的板子有问题?
离线
我的是800*480,感觉这个不带系统的和linux下的速度差不多,是不是lvgl本身的问题。
离线
离线
关于你这个lvgl的视频。我大概清楚。我当时是在NUC972上运行的这个程序(运行在linux操作系统下),效果也是你这样。这主要是弹出动画以及lvgl下main.c里,的usleep(10000)导致的。你在main.c中,找到这个函数,报10000改成比如100。键盘的弹出动画效果就快得飞起了
离线
我也看了一下代码
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); 这个是多余的, 没必要延时.
离线
这个延时去掉的话 cpu都被lvgl用了 别的也就干不了什么事情了
离线
应该在主循环里每隔多少时间(比如30ms)调用一下
lv_tick_inc(5);
lv_task_handler();
其余的时间用来做别的。
并且lv_tick_inc的参数应当等于两次调用之间的时间间隔,否则动画会快慢不对。
离线
多谢分享
离线
实际上是你烧进内部内存运行导致的慢 我试着烧到外部flash运行 快得一逼
离线
离线
用了楼主的程序,跑得比楼主视频快哈哈
多谢多谢了
离线
楼主跑的慢的问题找到了吗,能否再次分享下你的程序,我打算试试,第一个链接怎么都没下载下来
离线
你好,晕哥,请问楼主的那个参考程序,如何在win7的环境下用什么工具编译啊
离线
你好,晕哥,请问楼主的那个参考程序,如何在win7的环境下用什么工具编译啊
https://whycan.cn/t_3649.html#p33367
编译软件下载: https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update
Linux 编译软件下载: gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
编译软件可以用上面的gcc, windows/linux 版本都有,
make 在 linux自带, windows 的 msys 软件包也带 make.
离线
楼主跑的慢的问题找到了吗,能否再次分享下你的程序,我打算试试,第一个链接怎么都没下载下来
我在F1C100S上跑属于正常的呀
离线
awfans 感谢你提供的说明,根据链接发现GCC 编译器不支持ram9 ,麻烦给一个新版的,最好能有编译步骤,谢谢啦
离线
sea18c 我刚下载了,还不知道在windows 上怎么编译、烧写,给个文档参考下吧,我是新手,第一次接触ram
离线
sea18c 我刚下载了,还不知道在windows 上怎么编译、烧写,给个文档参考下吧,我是新手,第一次接触ram
我没有在windows上编译,我是用ubuntu16.04编译的,然后在windows上烧写,现在有软件可以烧写了, 方便多了,如果你用ubuntu16.04编译那可以先设置其文件夹为共享然后在windows上添加网络影射盘就可以直接操作了。烧写工具你搜索下:DKTool windows下F1C200S图形化烧写工具
离线
这个可以做成kei的工程来l编译不
离线
在大侠达克罗德放出的《F1C100S裸奔framebuffer + PWM + GPIO驱动》基础上移植LVGL。
目前已经能够在800*480的屏幕上使用32颜色深度,跑lvgl的demo例子。
但感觉速度很慢,比在linux下使用fbdev还慢。
有时间再优化。
看看能不能用DMA实现数据传输。
源代码:
lvgl_f1c100s.zip
f1c100s 怎么输出32bit色?
离线
我的lcd是480*272的,我修改了fb-f1c100s.c 里fb_f1c100s_init函数里的
pdat->width = 480;
pdat->height = 272;
以及lv_conf.h里的
#define LV_HOR_RES (480)
#define LV_VER_RES (272)
但我编译烧录了这程序,显示的是乱的,怎么回事呀?程序还要修改什么吗?
离线
解决了
离线
怎么解决的 分享下
离线
这个是不经过LINUX直接跑的?感觉有点颠覆认知
离线
看看
离线
在大侠达克罗德放出的《F1C100S裸奔framebuffer + PWM + GPIO驱动》基础上移植LVGL。
目前已经能够在800*480的屏幕上使用32颜色深度,跑lvgl的demo例子。
但感觉速度很慢,比在linux下使用fbdev还慢。
有时间再优化。
看看能不能用DMA实现数据传输。
源代码:
lvgl_f1c100s.zip
牛皮,裸奔,咱也去试试,感谢楼主分享!
离线
我的也是800*480,感觉这个不带系统的和linux下的速度差不多,是不是lvgl本身的问题。
离线
修复低帧率
//添加到fb-f1c100s.c
void fb_f1c100s_area_present(framebuffer_t * fb, uint16_t x1, uint16_t x2, uint16_t y1, uint16_t y2, uint32_t* data)
{
uint16_t x = x2 - x1 + 1;
fb_f1c100s_pdata_t * pdat = (fb_f1c100s_pdata_t *)fb->priv;
uint16_t size_of_row = x*sizeof(uint32_t);
pdat->index = 0;
for(int i=y1; i<y2+1; i++) {
memcpy(&((uint32_t*)pdat->vram[0])[i*LCD_WIDTH + x1], data, size_of_row);
data += x;
}
dma_cache_sync(pdat->vram[0], pdat->width * pdat->height, DMA_TO_DEVICE);
f1c100s_debe_set_address(pdat, pdat->vram[0]);
}
//在Main中使用
/* Display flushing */
void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p)
{
fb_f1c100s_area_present(&fb_f1c100s, area->x1, area->x2, area->y1, area->y2, (uint32_t*)color_p);
lv_disp_flush_ready(disp);
}
离线
good
离线
问下怎么在WIN10环境下设置make的gcc路径
离线
这个是不是gcc没搞定
离线
这不止是卡,简直用不了。
离线
感谢分享
有考虑使用DMA加速嘛
离线
lcd的dma跟cache能同时使用吗?
离线
有cma版的吗
离线
感谢分享!
感谢,目前跑不起来800*480 看看问题出来哪!
离线