rk3568 rockit编译测试

前言

环境介绍:

1.编译环境

Ubuntu 20.04.6 LTS

2.SDK版本

rk3568_linux_5.10

3.单板

迅为itop-3568开发板


一、编译rockit组件包

rockit组件包在4.10版本需要手动编译,奈何我的版本怎么都编译不了,后来改用5.10版本才编译通过。
4.10版本报错信息

undefined reference to ... @GLIBCXX_3.35

改用5.10版本编译buildroot,需要将虚拟机内存调整到8GB以上,因为默认编译采用多线程,导致内存不足出现个别包无法编译导致固件无法编译完成。
rockit组件包在5.10版本在编译buildroot系统的时候是自动编译的,并且会安装到编译的系统里面。固件烧录后在单板直接测试即可。此处跳过系统,单领出来编译。
系统编译完成后存放默认路径

/home/zfeng/rk3568_linux_5.10/buildroot/output/rockchip_rk3568/build/rockit/

进入原来SDK组件存放路径

zfeng@ubuntu:~$ cd  /home/zfeng/rk3568_linux_5.10/external/rockit/
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit$ ls
CMakeLists.txt  lib  mpi  README.md  tgi

rockit采用cmake,我们需要指定交叉编译器路径
编译rockit不能使用SDK默认编译kernel的交叉编译,需要采用编译buildroot的,而编译buildroot的编译器SDK并没有存放,需要编译过buildroot之后才可以用。
buildroot编译器路径为

/home/zfeng/rk3568_linux_5.10/buildroot/output/rockchip_rk3568/host/share/buildroot/bin/aarch64-buildroot-linux-gnu-gcc

在rockit里面新建toolchainfile.cmake,添加下面内容,指定cmake交叉编译器

# Example toolchain.cmake content
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

# 指定交叉编译器路径
string(REPLACE "/share/buildroot" "" RELOCATED_HOST_DIR /home/zfeng/rk3568_linux_5.10/buildroot/output/rockchip_rk3568/host/share/buildroot/)

set(CMAKE_C_COMPILER "${RELOCATED_HOST_DIR}/bin/aarch64-buildroot-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/bin/aarch64-buildroot-linux-gnu-g++")

# 设置目标系统根目录
set(CMAKE_FIND_ROOT_PATH /home/zfeng/rk3568_linux_5.10/buildroot/output/rockchip_rk3568/target/)

# 配置 CMake 查找程序和库文件的方式
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

新建build文件夹

zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit$ mkdir build
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit$ ls
build  CMakeLists.txt  lib  mpi  README.md  tgi  toolchainfile.cmake

进入build文件夹,执行cmake … -DCMAKE_TOOLCHAIN_FILE=…/toolchainfile.cmake

zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit$ cd build/
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit/build$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchainfile.cmake

等命令执行完再执行make即可

zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit$ cd build/
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit/build$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchainfile.cmake^C
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit/build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  compile_commands.json  Makefile  mpi  tgi
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit/build$ make
[ 30%] Built target rt_test_comm
[ 34%] Built target rk_mpi_ao_test
[ 38%] Built target rk_mpi_adec_test
[ 41%] Built target rk_mpi_vpss_test
[ 45%] Built target rk_mpi_vgs_test
[ 49%] Built target rk_mpi_mb_test
[ 52%] Built target rk_mpi_sys_test
[ 56%] Built target rk_mpi_vdec_test
[ 60%] Built target rk_mpi_all_test
[ 63%] Built target rk_mpi_venc_test
[ 67%] Built target rk_mpi_tde_test
[ 70%] Built target rk_mpi_ai_test
[ 74%] Built target rk_mpi_rgn_test
[ 78%] Built target rk_mpi_vo_test
[ 81%] Built target rk_mpi_aenc_test
[ 85%] Built target rk_mpi_vi_test
[ 89%] Built target rk_mpi_mmz_test
[ 92%] Built target rk_mpi_gdc_test
[ 96%] Built target rk_mpi_avio_test
[100%] Built target rk_mpi_amix_test
zfeng@ubuntu:~/rk3568_linux_5.10/external/rockit/build$

最后将编译完成的可执行文件放到开发板即可,可执行文件路径为

/home/zfeng/rk3568_linux_5.10/external/rockit/build/mpi/example/mod/

二、测试

以rk_mpi_vi_test举例
接上摄像头模组与HDMI显示器,开机
因为系统默认已经安装了rockit组件,直接命令测试即可

rk_mpi_vi_test -w 1920 -h 1080 -t 4 -n /dev/video0 -m 4 -l 1000

命令参数相关解析可查阅代码,这里提醒一下-l参数,这是程序运行计数,默认是100,时间很短,基本上显示画面一闪而过,一度以为是程序哪里出问题了,改用-l 1000,画面显示时间加长。

root@topeet:/# rk_mpi_vi_test -w 1920 -h 1080 -t 4 -n /dev/video0 -m 4 -l 1000
vi               08:59:14-994 {
   
   main              :1387} test running enter!
vi               08:59:14-995 {
   
   main              :1493} test running enter ctx->aEntityName=/dev/video0!
cmd parse result:
output file open      : 0
yuv output file name  : /
enc0 output file path : //
enc1 output file path : //
loop count            : 1000
enMode                :
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值