运行LVGL示例 打开串口终端软件,这里我使用MobaXterm软件演示,选择开发板的串口终端号,可以在设备管理中查看 这里我的串口设备号为COM15,所以在串口终端软件中也应该使用COM15,波特率为115200。操作步骤如下所示: 上面操作以7寸RGB屏作为演示硬件测试指令,输入: [backcolor=var(--code-bg-color)]root@TinaLinux:/# lv_examples 0wh=1024x600, vwh=1024x1200, bpp=32, rotated=0Turn on double buffering.[color=var(--code-ln-color)]
输入后,显示屏上会显示如下如所示的LVGL示例: 注意:LVGL示例会自动适配屏幕,可能和上面展示的比例不一致。 系统中内置有5个LVGL演示应用,如下所示: [backcolor=var(--code-bg-color)]lv_examples 0, is lv_demo_widgetslv_examples 1, is lv_demo_musiclv_examples 2, is lv_demo_benchmarklv_examples 3, is lv_demo_keypad_encoderlv_examples 4, is lv_demo_stress[color=var(--code-ln-color)]
[color=var(--c-text-accent)][size=0.85em]#开发LVGL程序[color=var(--c-text-accent)][size=0.85em]#配置编译lvgl环境**注意:**如果您使用的是前文 开始使用-->运行虚拟机 方式二 中 我们提供好的虚拟机,可直接跳过此章节,进入下一小节《编译LVGL源码》;如果您是自己配置的虚拟机,请认准阅读并按此章节进行操作。 假设将下载的工具链和源码tar.gz格式的压缩包文件传入虚拟机的任意目录中,这里我新建一个lvgl工作目录存储三个压缩包。输入: [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir lvgl-workubuntu@ubuntu1804:~$ cd lvgl-work[color=var(--code-ln-color)]
将allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz文件传入lvgl-work目录中,如下所示: [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl-works$ lsallwinner-tinasdk_lvgl8_demo_V1.0.tar.gz[color=var(--code-ln-color)]
新建toolchain文件夹用于存储sysroot和gcc文件夹 [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804ubuntu@ubuntu1804:~$ mkdir toolchainubuntu@ubuntu1804:~$ cd toolchain[color=var(--code-ln-color)]
传入压缩包后,如下所示: [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl_work/toolchain$ ls100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz[color=var(--code-ln-color)]
在toolchain目录中解压gcc工具链压缩包和sysroot依赖压缩包,输入: [backcolor=var(--code-bg-color)]tar -xzvf gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz[color=var(--code-ln-color)]
[backcolor=var(--code-bg-color)]tar -xzvf 100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz [color=var(--code-ln-color)]
解压完成后返回上一级lv_work目录中输入: [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl_work/toolchain$ cd ../ubuntu@ubuntu1804:~/lvgl_work$[color=var(--code-ln-color)]
解压lvgl demo源码压缩包 [backcolor=var(--code-bg-color)]tar -xzvf allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz [color=var(--code-ln-color)]
解压完成后的目录如下所示: [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl_work$ tree -L 2.├── allwinner-tinasdk_lvgl8_demo_V1.0.tar.gz├── lv_port_linux_frame_buffer│ ├── CMakeLists.txt│ ├── LICENSE│ ├── lv_conf.h│ ├── lv_drivers│ ├── lv_drv_conf.h│ ├── lvgl│ ├── main.c│ ├── Makefile│ ├── mouse_cursor_icon.c│ └── README.md└── toolchain ├── 100ask_t113-pro_arm-openwrt-linux-eabi-glibc_sysroot_v1.0.tar.gz ├── arm-openwrt-linux-eabi-musl ├── gcc-6.4-2017.11-x86_64_arm-openwrt-linux-eabi-musl.tar.gz ├── sysroot └── toolchain7 directories, 11 files[color=var(--code-ln-color)]
其中lv_port_linux_frame_buffer为LVGL Demo示例源码;toolchain中包含gcc交叉编译工具链和sysroot依赖文件。 下面开始修改源码中的Makefile文件,使lvgl源码使用下载的工具链进行编译。 进入gcc工具链文件目录的bin目录中查看交叉编译工具链是否存在 [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin$ ls arm-openwrt-linux-muslgnueabi-gccarm-openwrt-linux-muslgnueabi-gccubuntu@ubuntu1804:~/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin$ pwd/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin[color=var(--code-ln-color)]
arm-openwrt-linux-muslgnueabi-gcc交叉编译工具链绝对路径为: [backcolor=var(--code-bg-color)]/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc[color=var(--code-ln-color)]
进入LVGL源码目录中,查看源码文件。 [backcolor=var(--code-bg-color)]ubuntu@ubuntu1804:~/lvgl_work$ cd lv_port_linux_frame_buffer/ubuntu@ubuntu1804:~/lvgl_work/lv_port_linux_frame_buffer$ lsCMakeLists.txt LICENSE lv_conf.h lv_drivers lv_drv_conf.h lvgl main.c Makefile mouse_cursor_icon.c README.md[color=var(--code-ln-color)]
修改Makfiel文件 [backcolor=var(--code-bg-color)]vi Makefile[color=var(--code-ln-color)]
修改Makefile文件中CC为刚刚前面确认的交叉编译工具链路径,例如我刚刚确认的gcc交叉编译工具链绝对路径为: [backcolor=var(--code-bg-color)]/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/arm-openwrt-linux-muslgnueabi-gcc[color=var(--code-ln-color)]
那么修改Makfile文件中的CC修改为gcc交叉编译工具链绝对路径。 修改步骤如下所示: 修改完成后,保存退出编辑界面。 [color=var(--c-text-accent)][size=0.85em]#编译LVGL源码此时还需要指定存放交叉编译需要使用的工具链、库文件、头文件的文件夹。在终端输入 [backcolor=var(--code-bg-color)]export ARCH=armexport CROSS_COMPILE=arm-openwrt-linux-muslgnueabi-export PATH=$PATH:/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/bin/export SYSROOT_DIR=/home/ubuntu/lvgl_work/toolchain/sysroot/export STAGING_DIR=/home/ubuntu/lvgl_work/toolchain/arm-openwrt-linux-eabi-musl/[color=var(--code-ln-color)]
注意:如果您是自己配置的虚拟机的请修改为对应的路径,,如果使用我们提供的方式二 直接 复制 粘贴到 ubuntu18.04终端执行即可。 配置完成后,输入make即可开始编译。编译过程如下所示: 等待编译完成后,会在当前目录下生成名称为demo的应用程序。 [backcolor=var(--code-bg-color)]book@100ask:~/lvgl-work/lv_port_linux_frame_buffer$ ls demo demo[color=var(--code-ln-color)]
[color=var(--c-text-accent)][size=0.85em]#上传至开发板运行注意: 默认情况下 上述的 ubuntu系统配置环境 以及我们制作的虚拟机镜像已经配置好 adb环境,大家只需要 参考 文章 [color=var(--c-text-accent)]3-通过adb传输文件在新窗口打开 讲您的开发板 挂载至 ubuntu系统上 即可操作如下步骤 开始进行上传操作。在ubuntu系统下使用ADB功能将生成demo应用程序传输到开发板中运行,将ADB设备连接到虚拟机端中。查看ADB设备的设备号 [backcolor=var(--code-bg-color)]abd devices[color=var(--code-ln-color)]
传输LVGL示例程序进开发板端的root目录下 [backcolor=var(--code-bg-color)]adb push demo /mnt/UDISK[color=var(--code-ln-color)]
操作过程如下所示: 传输完成后,切换到开发板串口终端软件,进入终端,输入 如下命令: 即可看到屏幕运行 自己编译新的demo程序。 [backcolor=var(--code-bg-color)]root@TinaLinux:/# cd /mnt/UDISKroot@TinaLinux:/mnt/UDISK# lsdemoroot@TinaLinux:/mnt/UDISK# ./demo 0wh=1024x600, vwh=1024x1200, bpp=32, rotated=0[color=var(--code-ln-color)]
输入完成后,即可实现镜像中内置的lvgl demo演示示例。 [color=var(--c-text-accent)][size=0.85em]#深入课程学习
|