AXU2CG-E开发板QT测试
背景
开发板说明
使用的是芯驿电子科技(上海)有限公司,基于 XILINX Zynq UltraScale+ MPSoCs 开发平台的AXU2CG-E开发板。
写作背景
在复现教程的"LCD驱动"这一节实验时,遇到了很多问题,在此把解决问题的过程记录下来,供遇到同样问题的你。链接此参考博主的另外一篇博客"AXU2CG-E开发板QT测试",该文章最终实现的方式是通过软件MobaXterm_Persona输出QT窗体,本文是实实在在在LCD屏幕上输出QT界面。
实验环境
- 虚拟机:VMware® Workstation 16 Pro/16.2.2
- Ubunut:Ubuntu 18.04.4 LTS
- 软件:vivado 2020.1
- petalinux:petalinux 2020.2
- QT Creator:qt-opensource-linux-x64-5.7.1
- PuTTY:PuTTY_0.67.0.0.exe
- 开发板:AXU2CG-E
- LCD屏幕:黑金7寸五点电容屏 AN970
petalinux环境设置
petalinux具体的安装过程和设置离线编译方式请自行参考网上的资料。请注意petalinux的版本。
-
准备:petalinux工程建立。配置设备树、kernel,u-boot和SD卡启动方式。注意,建立建立工程时所需的硬件描述文件,请到此处下载(资源包也可以联系博客)。
-
输入
petalinux-config -c kernel
进入内核配置选项卡,选择“Device Drivers->Graphics support->勾选Xilinx DRM VTC Driver”,效果图如下: -
输入
petalinux-config -c rootfs
进入配置选项卡,选择“Filesystem Packages->fonts->勾选cantarell-fonts”。如果不选择此选项,那么在板子上面输出QT界面,只有样式效果,而没有字符。配置界面效果图如下: -
输入
petalinux-create -t modules --name alinxlcd
命令,新增自定义驱动文件,在“/project-spec/meta-user/recipes-modules/alinxlcd/files”的alinxlcd.c文件中替换源代码,源代码在资源包中。同理添加‘axdynclkdrv’和‘axtouchscreendrv’驱动。 -
输入
petalinux-config -c rootfs
进入配置选项卡,选择“modules->勾选刚才配置的三个驱动”。配置界面效果图如下: -
输入
petalinux-build
命令,进行编译。 -
输出
petalinux-package --boot --u-boot --fpga --force
生成三个必要的启动文件。复制这三个文件至SD卡,并设置开发板为SD卡启动方式。 -
板子运行起来后,会自动加载“alinxlcd.ko”和“axdynclkdrv.ko”这两个驱动,所以只需要手动添加“axtouchscreendrv.ko”驱动即可,添加的方式
insmod axtouchscreendrv.ko
。输入lsmod
查看三个驱动文件是否全部加载正确。 -
在开发板的串口终端中运行输入
export QT_QPA_PLATFORM=linuxfb
,并且输入./lcd_test
即可运行LCD应用程序,效果如下:
注意:把资源包里面的问价挂载到开发板请自行解决,方式很多,比如SD卡存储,scp
命令,NFS服务等。
- 为了使得显示效果流畅,也可以重新设置一下时钟源频率:
./ax_dynclk 0 dis
./ax_dynclk set 0 23040000
./ax_dynclk 0 en
/ax_dynclk set 0 23040000
./ax_dynclk 0 en