瑞芯微RV1109 SDK编译&支持QT程序开发

简介: 瑞芯微RV1109 SDK编译&支持QT程序开发

1、Rockchip SDK架构图

640.png

2、RV1126_RV1109开发环境搭建

2.1、搭建过程中遇到的问题

我用的是韦东山老师的ubuntu18.04虚拟机来编译的。

640.png

解决方法:

sudo rm /var/lib/dpkg/lock-frontend      
sudo rm /var/lib/dpkg/lock

2.2、安装和更新软件包

sudo apt-get update
sudo apt-get upgrade

2.3、安装QT开发环境

sudo apt-get install cmake qt5-default qtcreator

2.4、安装编译rockchip sdk必要的软件

sudo apt-get install repo gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools
device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev expect fakeroot cmake flex bison liblz4-tool libtool keychain expect-dev

安装环境成功:

640.png

2.5、编译sdk包

2.5.1、u-boot编译
cd u-boot
make rv1126_defconfig
make menuconfig
# 保存配置到对应的文件 rv1126_defonfig
make savedefconfig
cp defconfig configs/rv1126_defconfig
./build.sh uboot
2.5.2、Kernel编译
# 执行以下命令前先保证处在工程根目录下
./build.sh device/rockchip/rv1126_rv1109/BoardConfig-aybering.mk
cd kernel
make ARCH=arm rv1126_defconfig
makeARCH=arm menuconfig# 配置内核
make ARCH=arm savedefconfig
cp defconfig arch/arm/configs/rv1126_defconfig
# 执行下面命令之前要保证在工程根目录下
./build.sh kernel
2.5.3、Rootfs编译
# 1. 先 SDK 根目录查看 Board Config 对应的 rootfs 是哪个配置
./build.sh -h rootfs
source envsetup.sh rockchip_rv1126_rv1109
make menuconfig
make savedefconfig   # 保存到 rootfs 配置文件
./build.sh -h rootfs # 查看 Rootfs 详细编译命令
./build.sh rootfs    # Rootfs 编译命令
2.5.4、SDK整体编译

进行整体编译时遇到相应的错误,这个是为了跟RK原厂SDK同步的代码,由于我这个是从第三方买来的,故下面这个功能需要屏蔽掉。

640.png

然后再重新进行./build.sh整体编译,最后是成功的:

640.png

3、RV1126_RV1109系统开发

3.1、uboot开发

3.2、Kernel开发

主要是配置和修改dts设备树文件。


RK平台的dts文件存放于:

ARM:arch/arm/boot/dts/
ARM64 :arch/arm64/boot/dts/rockchip

一般 dts 文件的命名规则为soc-board_name.dts


soc 指的是芯片名称,board_name 一般是根据板子丝印来命名。


公用的硬件描述放在dtsi文件,而dts文件则描述不同的硬件模块,并且通过include "xxx.dtsi"将公用的硬件描述包含进来。

640.png

3.3、Buildroot开发

3.3.1、buildroot配置qt5和tslib

640.png

640.png

640.png

其它的功能都可以选配,配置完以后,在SDK根目录执行完成编译即可:

make savedefconfig
./build.sh

640.png

640.png

2、 QTCreator配置

(1)交叉编译工具链配置

640.png

640.png

(2)qmake配置

640.png

(3)开发工具配置

640.png

4、文件系统端配置
4.1、添加QT启动的环境变量

修改/etc/profile文件,在文件的末尾增加:

export QT_QPA_FB_DRM=1
export QT_ROOT=/usr/lib/qt
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_EGLFS_PHYSICAL_WIDTH=400
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=240
export QT_QPA_PLATFORM=linuxfb:rotation=90
export QT_QPA_FONTDIR=$QT_ROOT/plugins/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_GENERIC_PLUGINS="tslib:/dev/input/event1"
export XDG_RUNTIME_DIR=/tmp
export RUNLEVEL=3

在使用QT Creator编写了相应的QT程序以后,通过交叉编译拷贝到ARM板端文件系统,在运行前需要执行:

source /etc/profile

这句话相当于让环境变量生效。这样配置完毕以后就可以编写相应的QT程序然后在开发平台上运行了。

4.2、添加字库文件

/usr/share/fonts目录下添加文泉驿字库文件


调试过程中发现,如果不添加字库,则会导致QT运行后,如果带有字体显示的话,字体会无法显示出来,这是因为系统字体库缺失的情况,需要我们手动将字体库复制到文件系统内,当然也有另外一种方法,那就是将字体库与文件系统进行打包,然后在下载的时候,文件系统就自带了字体库了。

640.png

4.3、运行QT应用程序

前提是已经将qt程序拷贝到开发板的文件系统的目录下,然后在开发板端执行以下命令:

source /etc/profile   //使能环境变量
/oem/test_qt &        //你编写的QT应用程序

当然,也可以把它增加到启动脚本里去。

往期精彩

一个强大的音视频编解码库-rkmedia的应用


如何添加APP到Buildroot里(以瑞芯微rv1126为例)


基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得


Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)


Linux MIPI DSI驱动调试笔记-LCD时序参数配置(三)


Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)


新产品立项了,作为嵌入式软件工程师该如何来开展设计工作?(个人经验分享)

目录
相关文章
|
5月前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
81 0
|
5月前
|
编译器 C语言 Windows
cryptopp使用Qt mingw编译,以及海思平台交叉编译
cryptopp使用Qt mingw编译,以及海思平台交叉编译
146 0
|
4天前
|
C++
VS2019编译VTK-9.1.0+Qt5.15.2
本文介绍了在VS2019和Qt 5.15.2环境下编译VTK 9.1.0的过程,包括成功编译无警告和错误的截图、修改的pro文件内容,以及在QML中加入VTK的失败尝试和参考链接。
|
4天前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
4天前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
|
4天前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
VS2022+Qt5.14.2成功编译MITK2022.10
|
4天前
编译QCefView+VS2019+QT5.15.2
本文介绍了如何编译QCefView项目,并在VS2019和Qt 5.15.2环境下集成,包括编译结果、要点、cmake部署Qt的方法和相关参考链接。
编译QCefView+VS2019+QT5.15.2
|
4天前
|
人工智能
三战VS2019编译VTK7.1+Qt5.15.2
本文记录了作者在VS2019环境下编译VTK 7.1与Qt 5.15.2的历程,包括正确配置方法、遇到的编译错误以及解决过程。
|
4天前
|
人工智能 C++
初步编译QT5.15.2+VS2019+VTK8.2.0
本文介绍了在VS2019中编译QT 5.15.2和VTK 8.2.0的过程,包括编译结果、cmake库编译配置和cmake应用配置脚本,以及推荐的参考链接。
|
4天前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录