首页/新闻资讯/正文详情

[ZYNQ Linux] VCU使用

发布时间:2026/11/5 8:05:39 来源:云帆数科 栏目:资讯中心
[ZYNQ Linux] VCU使用
[ZYNQ Linux] VCU使用版本2023.1VCU概括VCU是单独的硬核没有直接挂在PS上需要PL用相关的IP核进行连接PS也需要对应的驱动加载内部有单独的MCU需要PS加载bootloader和应用程序MCU通过AXI接口读取执行位于DDR上应用程序编解码单元通过单独的HP读取相关数据编解码常用输入输出图像格式YUV420SP不支持RGBPL核心IPVCU这里配置最大支持的编解码格式BLOCK DESIGNPS设备树自动生成vcu_0:vcua0000000{#address-cells2;#clock-cells1;#size-cells2;clock-namespll_ref,aclk,vcu_core_enc,vcu_mcu_enc,vcu_core_dec,vcu_mcu_dec;clocksmisc_clk_0,zynqmp_clk71,vcu_00,vcu_01,vcu_02,vcu_03;compatiblexlnx,vcu-1.2,xlnx,vcu;interrupt-namesvcu_host_interrupt;interrupt-parentgic;interrupts0894;ranges;reg0x00xa00400000x00x1000,0x00xa00410000x00x1000;reg-namesvcu_slcr,logicore;encoder:al5ea0000000{compatibleal,al5e-1.2,al,al5e;interrupt-parentgic;interrupts0894;reg0x00xa00000000x00x10000;};decoder:al5da0020000{compatibleal,al5d-1.2,al,al5d;interrupt-parentgic;interrupts0894;reg0x00xa00200000x00x10000;};};相关文件使用petalinux编译的文件系统中已有这些文件。文件说明xilinx_vcu.koVCU IP配置模块内核源码中dmaproxy.ko allegro.ko al5e.ko al5d.ko编码器和解码器驱动没在内核源码中可以在github上找对应版本的vcu-modulesal5e_b.fw al5e.fw编码器的bootloader和应用程序类似的还有解码器的位于/lib/firmware用户不能修改内核驱动 vcu-moduleshttps://github.com/Xilinx/vcu-modulesdmaproxy为用户空间提供DMA调用的接口使用内部的DMA控制器注册字符设备 /dev/dmaproxy内核申请DMA通道→ \to→映射缓冲区→ \to→传输→ \to→清理资源用户空间打开字符设备调用ioctl内核空间配置DMA传输挂在等待队列上等待唤醒DMA传输完成后回调函数唤醒对应事件返回用户空间结束阻塞allegroVCU的MCU固件加载和启动接口主控通信协议Mailbox 与 MCU 交互队列与多用户管理并发处理零拷贝内存管理DMA-BUF 核心邮箱通信实现基于共享内存实现的环形缓冲区Ring Buffer 中断维护一个读指针和写指针每条消息分为消息头和消息体将整条消息存入缓冲区然后触发中断通知对方读取。al5d注册字符设备 /dev/allegroDecodeIP核心是和MCU进行通信控制al5e注册字符设备 /dev/allegroIP用户接口 vcu-ctrl-swhttps://github.com/Xilinx/vcu-ctrl-sw编解码库以及命令行工具操作/dev/allegroDecodeIP和/dev/allegroIP进行编解码解码工具 ctrlsw_decoder输出是NV12即YUV420SP。解码如果写入文件的话帧率比较低。ctrlsw_decoder-ininput_file.h264-avc-outoutput_file.yuv ctrlsw_decoder-in1080P.h264-avc-noyuvAllegro DVT2 -|AVC|HEVC|Decoder Reference Software v1.0.73 - Copyright(C)2008-2023 Confidential material Resolution: 1920x1088 FourCC: NV12 Profile:100Level:42Bitdepth:8Crop top:0Crop bottom:8Crop left:0Crop right:0Display resolution: 1920x1080 Sequence picture: progressive Buffers needed:8of size3342336Displayed picture#433 - CompleteDecodedtime2.4220s;Decoding FrameRate ~179.1908Fps;Frame(s)conceal0编码工具 ctrlsw_encoder使用vcu-ctrl-sw里的文件进行测试配置文件指定参数。ctrlsw_encoder-cfgtest/config/encode_example.cfgAllegro DVT2 -|AVC|HEVC|Encoder Reference Software v1.0.73 - Copyright(C)2008-2023 Confidential material Encoding picture#9 - Flushing...Achieved bitrate703.2600Kbps10pictures encoded. Average FrameRate1428.5714Fps标准化中间件 vcu-omx-ilhttps://github.com/Xilinx/vcu-omx-il基于vcu-ctrl-sw实现的一个标准的API编译出来是一个库文件OpenMAX IL 集成层OpenMAX Integration Layer (简称OpenMAX IL 或 OMX IL)一个由 Khronos 集团也是 OpenGL 标准的制定者维护的开放、免版税的标准 API。它的核心使命是提供一套标准化的接口让上层应用或多媒体框架能够以一种统一的方式去加载、控制、连接和卸载硬件或软件的多媒体编解码组件如 H.264 编码器、JPEG 解码器从而实现“一次编写到处运行”的跨平台可移植性。GStreamer插件 gst-plugins-vcuhttps://github.com/Xilinx/gst-plugins-vcu命令行通过插件调用底层硬件编解码软件模拟源测试编码UDP推流gst-launch-1.0-vvideotestsrc is-livetrue!\video/x-raw,formatNV12,width1920,height1080,framerate60/1!\omxh265enc periodicity-idr60!\video/x-h265,alignmentnal!\h265parse config-interval1!\mpegtsmuxalignment7!\udpsinkhost192.168.3.88port5004syncfalse问题记录Mcu didn’t start (no ping after startup, is mcu enabled ?)al5e和al5d驱动加载失败重新编译FSBL后解决。原因是添加VCU IP后会自动使能PS的几个HP接口需要重新编译FSBL(Bootloader)。如果未开启会导致MCU的AXI通信异常。以下是M_AXI_MCU接口异常和正常情况。异常MCU AXI通信读取数据大部分都是一样的和DDR不一致。正常MCU AXI通信。Mcu didn’t start (no ping after startup, is mcu enabled ?)在AXI通信正常的情况下依旧报这个错。判断MCU是否启动的原理是通过中断读取MCU消息中断错误也会出现这个问题。多个PL到PS中断的话自动生成VCU设备树的中断号和实际不符比如仍为第一个89。其他CPU Cache取指缺失时从DDR中取数据到Cache行中。这里取数据的过程用的是AXI4协议传输类型是WRAP类型只会取一个cache行的数据如果长度超过后会从头开始。比如一行是32B第一个地址是0xD8第二个是0xDC再往后超过该行范围第三个从0xC0开始开始。

相关推荐

从小白到程序员:大模型Agent开发入门指南,抓住2026年蓝海机遇!
从小白到程序员:大模型Agent开发入门指南,抓住2026年蓝海机遇!

本文对比了大模型算法岗与Agent开发岗的异同,指出大模型算法岗薪资高但门槛极高,适合少数顶尖人才;而Agent开发岗则更注重AI工程化落地,适合大多数程序员和初学者,且市场前景广阔,薪资待遇优厚。文章建议关… · 2026/11/5 2:52:32

如何构建干部领导力模型?
如何构建干部领导力模型?

干部领导力模型是企业建立干部标准、提升干部管理水平、推动干部队伍建设的重要基础。构建科学有效的领导力模型,关键在于从企业战略和业务需求出发,将优秀干部的成功经验转化为可观察、可评价、可培养的行为标准。 第一步:战略解码&#xff… · 2026/11/2 11:14:04

文件共享软件怎么选?坚果云「分享」vs「共享」深度拆解:两种模式覆盖所有场景
文件共享软件怎么选?坚果云「分享」vs「共享」深度拆解:两种模式覆盖所有场景

文章目录一、「分享」和「共享」:一字之差,天壤之别二、分享链接:安全、可控的单向分发2.1 分享链接的核心特性2.2 安全控制选项2.3 分享链接的典型场景三、共享文件夹:多向、实时的团队协作3.1 共享文件夹的核心机制3.2 六种访问… · 2026/11/5 0:39:40

Fashion_MNIST对抗攻防实战:FGSM/PGD/TRADES闭环实现
Fashion_MNIST对抗攻防实战:FGSM/PGD/TRADES闭环实现

简介:本资源是一份面向深度学习初学者与安全研究者的实战项目包,聚焦图像分类模型在Fashion_MNIST数据集上的对抗攻击生成与对抗训练全流程实现,解决模型鲁棒性评估与防御能力提升这一核心问题,适用于AI安全入门、课程实验及科研复… · 2026/11/5 8:04:56

Fashion-MNIST对抗训练实战:PyTorch端到端鲁棒性提升方案
Fashion-MNIST对抗训练实战:PyTorch端到端鲁棒性提升方案

简介:本资源是一份面向深度学习初学者与安全研究者的实战项目包,聚焦图像分类模型在Fashion_MNIST数据集上的对抗攻击生成与对抗训练全流程实现,解决模型鲁棒性评估与防御能力提升这一核心问题,适用于AI安全入门、课程实验及科研复… · 2026/11/5 8:04:56

课堂行为ST自动分析软件:Python+OpenCV实现学生行为识别与统计
课堂行为ST自动分析软件:Python+OpenCV实现学生行为识别与统计

简介:课堂行为ST自动分析软件面向教育技术、计算机视觉方向的学习者与毕业设计选题学生,提供一套可运行的课堂行为智能分析项目源码。软件结合AI与计算机视觉技术,通过视频或智能设备采集课堂数据,对学生的课堂行为进行检测与量化… · 2026/11/5 8:04:56

Windows C++串口通信全链路实现:从CreateFile到WaitForMultipleObjects
Windows C++串口通信全链路实现:从CreateFile到WaitForMultipleObjects

简介:本资源是一套面向Windows平台C开发者的串口通信完整工程实现,适用于嵌入式调试、工业控制上位机开发及课程设计等场景,尤其适合具备基础C和Win32 API知识的中级开发者快速掌握RS-232全双工通信的核心实现。压缩包共51个文件,… · 2026/11/5 8:04:56

T+前端级联自由项实现:JS扩展不改模板不碰后端
T+前端级联自由项实现:JS扩展不改模板不碰后端

简介:本资源是面向畅捷通T二次开发工程师的级联自由项实战解决方案,聚焦销售订单等业务单据中多级联动字段的极简实现,解决企业个性化配置下动态筛选配件、服务等自由项的常见痛点。资源包含完整VS解决方案(Ufida.T.HY.sln&#x… · 2026/11/5 8:04:56

免费降ai软件实测:先免费降AI 1000字,满意后整篇降,维普AI率96.46%降到0%
免费降ai软件实测:先免费降AI 1000字,满意后整篇降,维普AI率96.46%降到0%

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 8:03:55

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码