项目分解:
1.搭建环境编译海思SDK
2.编译海思平台GPU驱动
3.编写C/C++示例使用OpenGL显示
4.编译QT5.14.2源码带OpenGL
5.运行QT程序驱动GPU
1.搭建环境编译海思SDK
etc/profile:
export PATH="/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:$PATH“
编译成功则显示----------finish osdrv work
2.编译海思平台GPU驱动
GPU 驱动依赖hi_osal.ko、hifb.ko,执行脚本./load3559av100_multicore -i 加载驱动
执行脚本./loadgpu –i动态加载GPU 驱动 hi_dbe.ko, mali_kbase.ko
3.编写C/C++示例使用OpenGL显示
cmd:make linux
将库文件所在路径添加到 LD_LIBRARY_PATH
./sample 0 0 0
./es20_eglCreatePixmapSurface
cat /proc/interrupts 可以看到GPU产生的中断
4.编译QT5.14.2源码带OpenGL
将目录下target/usr 链接到根目录usr(ln -s)
将目录下aarch64-linux-gnu链接到/usr/lib下(ln -s)
将海思SDK里gpu/release目录下的include目录和lib目录(cp -r)
拷贝到opt/hisi-linux/x86-arm/aarch64-himix100-linux/usr目录下
QMAKE_LIBS_EGL += -lmali
QMAKE_LIBS_OPENGL_ES2 += -lmali
DEFINES += EGL_EGLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES EGL_FBDEV EGL_API_FBDEV EGL_API_MIDGARD PLATFORM_MALI700
#!/bin/bash
./configure -v \
-opensource -confirm-license \
-release -shared \
-make libs \
-strip \
-xplatform linux-aarch64-himix100-linux \
-prefix /opt/qt5.14.2_opengl \ //安装目录
-opengl es2 \
-eglfs \
-no-xcb \
-no-gcc-sysroot -no-pkg-config \
-nomake examples -nomake tests \
-no-ico -nomake examples \
-no-sse2 -nomake tools \
-no-iconv -no-gif \
-no-rpath -no-pch \
-no-avx \
-no-cups \
-skip qtserialbus \
-skip qtquick3d\
make –4
make install
5.运行QT程序驱动GPU
配置Qt Versions、 Compilers、 Kits
目标板配置环境: export LD_LIBRARY_PATH= /qt5.14.2-opengl/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=/mnt/nfs/qt5.14.2-opengl/plugins
export QT_QPA_EGLFS_PHYSICAL_WIDTH=1920
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=1080
./xxx -platform eglfs
Øcat /proc/interrupts 可以看到GPU产生的中断
随着程序运行的时间变长,GPU产生中断的次数也在不断增加