前言
学习imx6ull到正点原子的LCD部分,想自己做做小项目巩固下前面的基础,遂开始学习lvgl,将应用与驱动结合起来。下面记录下移植lvgl的过程以及遇到的一些问题。
lvgl移植
首先就是移植lvglv8.2的官方demo,这块网上的资料很多,正点原子IMX6ULL开发板移植LVGL v8.2_imx6ull移植lvgl-优快云博客
我当时就按这个修改的头文件。
这块遇到的一个坑就是make后得到的demo可执行文件在arm上运行显示以下问题,
这个问题是因为makefile文件中的编译器指定有问题,最初版本的makefile中cc是 ?=,不知道什么原因导致每次都是使用ubutu的编译器在编译,最后修改为=,解决了这个问题。
可以使用file demo指令来查看可执行文件类型,一定要确保是arm的不能是x86-64的。
将demo挂载到nfs下之后,运行demo结果如下:
然后遇到第二个问题,就是触摸屏没有反应。前言里说了只学习到正点原子的lcd部分,这里要触摸需要电容屏章节的驱动。遂开始学习电容屏部分的知识,我是gt系列的屏幕(正点原子最新的屏幕,但支持单点触摸),学习完后手动加载这一章节的驱动(因为gt的内核不支持开机自加载驱动,后面再研究),ls input下的设备,出现了event1。这里最好再使用hexdump /dev/input/event1测试一下。
这个时候就好了,可以触摸了,如下图所示。
下面就是开始移植韦东山老师的lvgl课程的入门例程,老师视频里面是重新装了一个系统,这个不适用于正点原子的板子(亲测),其实只需要修改下例程中的makefile文件就可以,修改成和上面lvgl官方demo的那个就可以了。即我放的上面那个链接里面的makefile就可以。
总结
整个过程其实看下来很简单,但是因为刚刚开始接触Linux这方面的东西,所以走了很多弯路,后面继续探索lvgl。加油!!!