RK3588开发板的使用情况

RK3588开发板的使用情况`

第一章 RK3588的QT交叉编译环境搭建


``


1、QT交叉环境说明

搭建环境需要准备1台Ubuntu 20.04的服务器,RK3588也是安装了Ubuntu20.04。RK3588安装Ubuntu的方法通过开发板厂商提供的系统烧录到开发板。
先描述服务器安装QT;
再描述服务器源码QT安装。


2、QT安装

在QT网站下载x86的版本,我基于自身安装的5.12.10版本来描述。如果需要该版本,也可以通过我的网盘提供给大家。

2.1 安装QT程序

将下载的qt-opensource-linux-x64-5.12.10.run放到\opt目录下。
采用如下命令安装。安装必须在本机安装,需要有界面。不能远程ssh登入安装。

./qt-opensource-linux-x64-5.12.10.run #	安装qt

2.2 安装交叉编译器和配置环境

1、通过网盘将编译器软件下载到opt
gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar
gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar
2、安装两个编译器

sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar 
sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar 

3、解压后

在这里插入图片描述
4、修改环境变量

sudo vim ~/.bashrc

添加交叉编译器环境,路径在:/opt/
PATH= P A T H : / o p t / g c c − l i n a r o − 7.5.0 − 2019.12 − x 8 6 6 4 a a r c h 64 − l i n u x − g n u / b i n P A T H = PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin PATH= PATH:/opt/gcclinaro7.5.02019.12x8664aarch64linuxgnu/binPATH=PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin


# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
PATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
PATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin

# enable programmable completion features (you don't need to enable

5、配置后使得全局变量生效,命令行输入

source ~/.bashrc

6、验证一下编译器是否已经安装好,命令行输入:

root@alaolv-VirtualBox:/home/alaolv/demo# aarch64-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/7.5.0/lto-wrapper
Target: aarch64-linux-gnu
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release_0/snapshots/gcc.git~linaro-7.5-2019.12/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-arch=armv8-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/sysroots/aarch64-linux-gnu --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=aarch64-linux-gnu --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.5.0 (Linaro GCC 7.5-2019.12) 
arm-linux-gnueabihf-gcc -v
root@alaolv-VirtualBox:/home/alaolv/demo# arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/7.5.0/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release_1/snapshots/gcc.git~linaro-7.5-2019.12/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/sysroots/arm-linux-gnueabihf --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabihf/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.5.0 (Linaro GCC 7.5-2019.12) 

7、创建c程序进行验证
创建一个hello.c文件,程序如下:

vim hello.c

在vim编辑文件中,输入如下程序:

#include <stdio.h>
int main(int argc, char **argv)
{
    printf("Hello, you do it succeed!!!\n");
    return 0;
}

:wq!保存
8、对hello.c进行aarch64编译

 aarch64-linux-gnu-gcc hello.c -o helloworld

将生成可执行文件helloworld
9、将helloworld执行文件放到RK3588开发板进行执行
在这里插入图片描述

2.2 编译QT源码,配置交叉编译环境

1、在opt目录,对QT的源码包进行解压,输入:

sudo tar xvf qt-everywhere-src-5.12.10.tar.xz
cd qt-everywhere-src-5.12.10

2、进入到qtbase/mkspekcs/目录下,在该目录下,找到一个相似的工具链,cp一份并修改为指定的工具链(即在QT下添加自己的指定的平台)。然后输入:

sudo cp -a linux-aarch64-gnu-g++/ aarch64-linux-gnu-g++/
sudo cp linux-arm-gnueabi-g++/  linux-arm-rk3588-linux-g++/ -r 

3、进入到新建的目录aarch64-linux-gnu-g++文件夹下,修改qmake.conf的内容

sudo vim qmake.conf

4、将下面的内容添加进去

# modifications to g++.conf
QMAKE_CC                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc 
QMAKE_CXX               = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ 
QMAKE_LINK              = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ 
QMAKE_LINK_SHLIB        = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ 

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-nm  -P
QMAKE_STRIP             = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)


5、在源码解压的QT目录创建build目录,创建一个build.sh的文件

sudo mkdir build
cd build
sudo bim build.sh

将下面的代码放到build.sh文件中。

../configure \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-make libs \
-nomake tests \
-nomake examples \
-skip qtmacextras \
-skip qtandroidextras \
-no-opengl \
-xplatform aarch64-linux-gnu-g++ \
-prefix /opt/qt-5.12.X-linux-aarch64-gcc

:wq!编辑后保存退出。build.sh设置可执行权限.

sudo chmod 777 build.sh

6、安装依赖库,尽量都安装上

基础的编译环境:
sudo apt-get build-dep qt5-default
sudo apt-get install libxcb-xinerama0-dev
sudo apt-get install build-essential perl python git
Libxcb:
sudo apt-get install ‘^libxcb.*-dev’ libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
OpenGL:
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libegl1-mesa-dev
sudo apt-get install freeglut3-dev
Qt WebKit:
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby
Qt WebEngine:
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison
Qt Multimedia:
sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
QDoc Documentation Generator Tool:
sudo apt install libclang-6.0-dev llvm-6.0


7、依赖库安装完成后,执行build.sh

sudo ./build.sh

8、执行make

sudo make

9、执行make install

sudo make install

在编译完成后执行 make install 会将qt库安装到 -prefix 指定的目录下。
在这里插入图片描述
10、配置交叉编译环境
(1)打开已经安装好2.1QT程序Qt5.12.10
在这里插入图片描述
在这里插入图片描述
双击打开qtcreator。

在这里插入图片描述
(2)配置其aarch64位编译器,在Compilers中点击Add我们之前安装并配置好的交叉编译链GCC,配置路径,名称要区别开
tools->option->kits
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)在Qt Versions里面配置已经编译好的qmake,位置在opt下面
在这里插入图片描述
(4)添加Kit,配置如下图所示,Name可以自定义
在这里插入图片描述
(5)点击ok之后在Projects里点击刚配置好的Kits,然后选择我们的环境,选择Release模式,点击build即可
在这里插入图片描述
(6)Build之后显示绿色已经build成功
在这里插入图片描述
(7)看到已经build好的项目
在这里插入图片描述
(8)点击进去之后看到有一个可执行文件即可,拷贝到板子上就可以用了,根据不同的程序需要特殊的全局变量的设置,相关库lib的放置等,需要在home下.bashrc文件里添加,并且使用source生效即可
在这里插入图片描述

### 实现 RK3588 开发板 NPU 使用率的实时监控 对于瑞芯微RK3588开发板而言,要实现对其NPU使用情况的实时监测,通常依赖于特定的性能分析工具或命令。这些工具能够提供关于硬件资源利用状况的关键指标。 一种常见的做法是通过集成至操作系统的性能计数器来获取这类信息。然而,在RK3588的具体场景下,官方提供的`rknn-toolkit2`不仅支持模型转换等功能,还包含了用于评估神经网络推理过程中的性能表现特性[^1]。这意味着该套件可能内嵌有查看设备负载状态的能力。 为了更精确地跟踪NPU的工作负荷,建议采用如下Python脚本片段作为基础框架,此代码展示了如何读取并展示每秒处理图像的数量(即帧速率),这间接反映了NPU活跃程度: ```python import time import cv2 frames, startTime = 0, time.time() while True: # 假设此处存在从摄像头或其他源接收新帧的操作... frames += 1 currentTime = time.time() if frames % 30 == 0: print(f"过去{int(currentTime-startTime)}秒内的平均帧率为 {30/(currentTime-loopStartTime):.2f} FPS") loopStartTime = currentTime # 显示当前帧以及退出条件判断逻辑保持不变... if cv2.waitKey(1) & 0xFF == ord('q'): break ``` 上述代码虽然主要用于计算视觉应用中的帧率统计,但对于理解NPU工作强度有一定帮助。不过需要注意的是,这段代码并非直接测量NPU利用率的方法[^2]。 针对更加详细的NPU占用比例等具体参数,推荐查阅由制造商发布的文档和技术指南,因为它们会给出最权威且适合目标平台特性的指导方案。此外,某些高级别的SDK可能会附带专门设计用来监视内部组件活动水平的应用程序接口(API),允许开发者编写自定义监控解决方案[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值