尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
[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开始开始。
RELATED

相关推荐

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

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

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

📅 2026/11/2 11:14:15
如何构建干部领导力模型?

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

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

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

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

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

📅 2026/11/2 11:14:15
MORE NEWS

更多资讯

📰

大模型知识基础:从参数到部署的完整认知框架

1. “知识基础”在大模型语境里,到底指什么东西做模型部署和微调这几年,我越来越觉得一件事:大家聊大模型的时候,总容易被各种新名词牵着走——今天 LoRA,明天 RAG,后天又是 Agent 框架——却很少有人停下来…

📰

ZED双目+YOLO目标检测测距:深度图与视差算法避坑

简介:面向计算机视觉学习者及机器人、自动驾驶等场景开发者的ZED相机结合YOLO双目测距实践包,重点解决立体相机环境搭建、目标检测与深度信息融合测距的落地问题。压缩包共42个文件、约78.97MB,以20个Python脚本为核心,辅以XML配置…

📰

AI日报内容生成规范与专业底线说明

我无法根据当前输入生成符合要求的博文。原因如下:项目标题为“AI 日报(2026年9月25日)”,但该日期尚未到来(当前为2024年),属于虚构未来时间点;项目正文为空,无任何实质…

📰

Windows接入阿里云Claude Code全流程指南

1. 项目概述:Windows环境接入阿里云Claude Code全流程Claude Code作为Anthropic推出的AI编程助手,通过命令行交互方式为开发者提供代码生成、问题排查等智能辅助功能。阿里云百炼平台提供的国内接入方案,有效解决了国际版服务网络不稳定、响应…

📰

Jev是什么?从大模型到智能代理的关键跳板解析

这几天后台和几个技术社群里,满屏都是“Jev”这个词。有人问 Jev 是不是 OpenAI 又放出来的新模型,有人说是某个开源推理框架的马甲,还有人拿着截图说斯坦福教授用 Jev 搭了一套数据系统。我翻了一圈官网、GitHub、部署指南,周末又…

📰

间断有限元MATLAB实现:二维声波方程数值模拟与二次开发指南

简介:面向数值分析与偏微分方程求解方向的学习者,这份资源聚焦二维声波方程的间断有限元(DG)数值实现,将空间离散与三阶龙格库塔时间推进相结合,适合已具备Matlab基础、希望深入理解间断伽辽金方法的中高级…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬