开机白屏时间过长
-- 这里我们不考虑是lvgl占的内存太大的问题,这里考虑的是为什么lcd屏幕启动后会有长时间的白屏。
- 首先我们要了解lvgl的相关操作,主要集中在一个函数中。只有程序执行到了这个函数,lvgl的屏幕才会显现出来
- 总结来说就是lvgl屏幕的初始化后,过来很长时间才执行到lvgl的任务所以造成LCD长时间白屏(因为LCD初始化中有个清屏函数)
-- 所以我们只需要将这个函数移到lcd初始化后面即可
-- 这样开机白屏时间就大大缩短了。
优化LVGL
-- 1、去掉LVGL不必要的内容,我们可以在lv_conf.h中将不要的功能都置0,主要是不用的日志、断言、组件、布局、三方库,只留下基本的标签、图片、按钮、线条等部件。
-- 2、最大限度将用到的图片进行手动绘制。
-- 有些较为规则的图片图案,可以使用矩形和线条来绘制。将图片从13张优化到n张,并减小部分图片的尺寸。
-- 在lvgl界面,占很大内存的主要是图片,所以我们的界面最好不要用很多尺寸较大的图片,如果必须使用,可以将图片缩小,或者将图片手动绘制出来。
-- 如果我们想用很多图片做一个底层,那我们可以先去画图软件绘制好成一个图片,大大减少内存占用。
-- 插件从阿里云矢量库中查找
https://www.iconfont.cn/search/index?searchType=icon&q=羽毛&page=2&fromCollection=-1
总结
总结下来,其实就几点:
1、失能lvgl不必要的部件;
2、尽可能使用绘制来代替图片;
3、实在没法绘制的小图标就直接使用图片;
另外,还可以直接弄一个写flash工程,将不经常刷新的图片素材写到外部flash中,为什么要单独弄一个呢?因为直接在工程里写flash,容易导致每次烧录程序都要写一遍。
其实还有个方式,那就是开启keil的优化等级,只不过这种情况下需要注意一些变量的volatile处理,而且优化也并不明显,能大概下降个二三十k吧。