文章目录
第1阶段:lvgl移植到linux中的framebuffer中
第一步,找到源码,整理后编译
第二步,linux环境下编译,直接执行make
编译报错
解决方案1
报错解决
第三步, 编译完成后直解运行demo ./demo
- 运行报错
- 问题分析
2.1 我猜是因为 input 子系统方面的问题 ,驱动肯定没问题,也就是说使用出了问题 evdev设备 ,在源码中搜索,定位打印错误位置
2.2 打开设备失败的问题,看看自己电脑里有哪些输入设备,改改名字就行啦
2.3 修改相关源码,上述源码位置在lv_drv_conf.h的第450行,因此到相应位置将输入设备改为自己电脑上的就好
3 编译,运行不报错,但是啥现象都没有
3.1 查了一些资料,有个资料提醒了我,既然这套lvgl可以在各个地方移植,那么肯定有一些东西需要配置,才能将显示屏变为framebuffer输出的模式。。。。
3.2 经过一番探查,设置的都是对的,为什么不显示呢,我怀疑是因为我的虚拟机的/dev/fb0 已经被占用了,所以我想应该编译后直接放到linxu开发板中试试
第四步,更改交叉编译工具链 为我们的arm-linux-gcc
第五步,将生成的demo文件拷贝到根文件系统中,执行可见如下结果
第2阶段:完善程序
1.第一阶段存在的问题
- 屏幕不适配的问题
- 我们的开发板没有鼠标,将鼠标操作换成触屏操作
2. 解决屏幕不适配的问题
2.1 可以通过应用程序,直接获得屏幕的具体参数,较为简单
2.2 为了熟悉驱动框架,我们查看内核源码获得
1) 首先查看有哪些fb设备,通过设备名字,在源码中搜索得到源文件
找到了 屏幕宽高 分别为 800和480 但是其实不是的应该是 1024和 600 。。。
1024和600 是通过编写应用程序打印出来的
2) 更改lvgl的程序,验证一下啦,成功