【Xilinx】如何在petalinux下编译vcu-gst-app以及独立编译vcu-gst-app

本文档详细介绍了如何在不使用PetaLinux工具链的情况下,直接编译Xilinx ZCU106平台上的VCU-GST-APP应用。首先,需要创建工程并安装SDK,然后将源代码整理到合适目录。接着,修改Makefile.am中的路径以适应新的环境,并运行autogen.sh和configure生成Makefile。最后,通过设置SDK环境变量并执行make命令完成编译。过程中遇到了路径配置和依赖库的问题,通过调整配置文件成功解决。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

Xilinx从2018.1开始,提供了一套基于zcu106的vcu参考设计。
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841711/Zynq+UltraScale+MPSoC+VCU+TRD

里面提供了一套基于GStreamer的程序,即vcu-gst-app。但是这个需要基于petalinux环境编译:

petalinux-build -c vcu-gst-app

如何脱离petalinux直接编译呢,这里以PetaLinux2020.2为例,其他版本也是类似的操作





一、在Petalinux下编译vcu-gst-app

1.创建Petalinux工程

这步与正常的创建petalinux工程一样。具体命令如下

#用bsp创建工程
petalinux-create -t project -s xilinx-vcu-zcu106-v2020.2-final.bsp 
#进入工程目录
cd xilinx-vcu-zcu106-v2020.2-final/
#导入xsa
petalinux-config --get-hw-description=../

#配置整体信息
petalinux-config
#配置内核
petalinux-config -c kernel
#配置u-boot
petalinux-config -c u-boot
#配置根文件,在这个里面选中vcu_gst_app
petalinux-config -c rootfs

#编译
petalinux-build

详细步骤和解释可以参考

Petalinux快速入门向导 (4) 第三章.PetaLinux开发基本流程


2. 重要说明(2024-9-29添加)

注意zcu106的bsp有两种,一定要用前缀是xilinx-vcu,后缀是final的bsp包,文件大小是几M。 不要用成另外一个几G的bsp包了。 比如xilinx-vcu-zcu106-v2020.2-final.bsp。 另外还需要一个xsa,比如zcu106_trd_wrapper.xsa

先用bsp创建工程,创建后目录project-spec/meta-user/recipes-apps/vcu-gst-app下只有一个vcu-gst-app.bb文件。
要完整编译工程后,才会下载相应的源代码。编译完成后,目录结构如下:

xlx@u16:/opt/work/p202/vcu_test/xilinx-vcu-zcu106-v2020.2-final/project-spec/meta-user/recipes-apps/vcu-gst-app$ tree
.
├── files
│   ├── AUTHORS
│   ├── autogen.sh
│   ├── configure.ac
│   ├── COPYING
│   ├── Makefile.am
│   ├── vcu_apm_lib.zip
│   ├── vcu_gst_app.zip
│   ├── vcu_gst_lib.zip
│   └── vcu_video_lib.zip
├── README
└── vcu-gst-app.bb

1 directory, 11 files

二、独立编译vcu-gst-app: 准备工作

1.工具准备:编译并安装sdk

编译对应的sdk,后续需要用到这个编译器来编译我们的代码

petalinux-build --sdk
petalinux-package --sysroot




在我的电脑上,工程目录是/opt/work/p202/xilinx-vcu-zcu106-v2020.2-final/
安装后的sdk路径是./images/linux/sdk
完整路径是/opt/work/p202/xilinx-vcu-zcu106-v2020.2-final/images/linux/sdk





2.源代码准备

2.1 默认的源代码目录

默认源代码位于project-spec/meta-user/recipes-apps/vcu-gst-app目录下
目录结构为

├── files
│   ├── AUTHORS
│   ├── autogen.sh
│   ├── configure.ac
│   ├── COPYING
│   ├── Makefile.am
│   ├── vcu_apm_lib.zip
│   ├── vcu_gst_app.zip
│   ├── vcu_gst_lib.zip
│   └── vcu_video_lib.zip
├── README
└── vcu-gst-app.bb

1 directory, 11 files

2.2整理后的代码目录

创建新目录/opt/work/p202/vcu-gst-app,再创建app,把vcu_gst_app.zip解压到目录下
创建lib子目录,把另外3个压缩包解压到目录下。
完整的目录结构为

.
├── app
│   └── vcu_gst_app
│       ├── include
│       │   ├── configs.h
│       │   └── vcu_gst_app.h
│       ├── input.cfg
│       └── src
│           └── vcu_gst_app.c
├── autogen.sh
├── configure.ac
├── lib
│   ├── vcu_apm_lib
│   │   ├── include
│   │   │   ├── perfapm.h
│   │   │   ├── uio_common.h
│   │   │   ├── uio_perfmon.h
│   │   │   └── uio_perfmon_hw.h
│   │   ├── README.md
│   │   └── src
│   │       ├── perfmon.c
│   │       ├── uio_common.c
│   │       └── uio_perfmon.c
│   ├── vcu_gst_lib
│   │   ├── include
│   │   │   ├── vgst_config.h
│   │   │   ├── vgst_err.h
│   │   │   ├── vgst_lib.h
│   │   │   ├── vgst_pipeline.h
│   │   │   ├── vgst_split_pipeline.h
│   │   │   └── vgst_utils.h
│   │   ├── README.md
│   │   └── src
│   │       ├── vgst_lib.c
│   │       ├── vgst_pipeline.c
│   │       ├── vgst_split_pipeline.c
│   │       └── vgst_utils.c
│   └── vcu_video_lib
│       ├── include
│       │   ├── drm_helper.h
│       │   ├── gpio_utils.h
│       │   ├── helper.h
│       │   ├── mediactl_helper.h
│       │   ├── v4l2_subdev_helper.h
│       │   ├── vcap_csi.h
│       │   ├── vcap_csi_int.h
│       │   ├── vcap_hdmi_int.h
│       │   ├── vcap_quad_csi.h
│       │   ├── vcap_quad_csi_int.h
│       │   ├── vcap_scd_int.h
│       │   ├── vcap_sdi_int.h
│       │   ├── vcap_tpg.h
│       │   ├── vcap_tpg_int.h
│       │   ├── video.h
│       │   ├── video_int.h
│       │   └── xilinx-v4l2-controls.h
│       └── src
│           ├── drm_helper.c
│           ├── gpio_utils.c
│           ├── mediactl_helper.c
│           ├── v4l2_subdev_helper.c
│           ├── vcap_csi.c
│           ├── vcap_hdmi.c
│           ├── vcap_quad_csi.c
│           ├── vcap_scd.c
│           ├── vcap_sdi.c
│           ├── vcap_tpg.c
│           ├── video.c
│           └── video_src.c
└── Makefile.am

14 directories, 55 files

三、配置Makefile

1.修改Makefile.am中的默认路径

1.1 修改路径recipe-sysroot

打开gedit Makefile.am ,搜索recipe-sysroot
共搜索到4处

vcu_gst_app_CFLAGS = $(VCU_GST_CFLAGS) -I$(vcu_gst_app_INC_DIR) -I$(vcu_apm_lib_INC_DIR) -I$(vcu_video_lib_INC_DIR) -I$(vcu_gst_lib_INC_DIR) -I../recipe-sysroot/usr/include/drm -I../recipe-sysroot/usr/include
libvcu_apm_lib_a_CFLAGS = $(VCU_GST_CFLAGS) -I$(vcu_apm_lib_INC_DIR)
libvideo_a_CFLAGS = $(VCU_GST_CFLAGS) -I$(vcu_video_lib_INC_DIR) -I../recipe-sys

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值