![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zynq
Joker.Mao
"你所有的烦恼都是因为你读书少"
Gzh:ADAS之眼。
传感器、嵌入式、FPGA、ISP领域耕耘者~
展开
-
vivado无法导出hls ip问题
【代码】vivado无法导出hls ip问题。原创 2022-11-20 21:53:11 · 356 阅读 · 0 评论 -
MAX9286调试记录
max9286是美信第一代gmsl通信芯片,在一些低端1Mega环视上使用,本文记录下Linux下9286驱动,下次介绍9296的driver驱动。原创 2022-11-09 23:35:47 · 2110 阅读 · 0 评论 -
Xlinx vdma frame ptr输出大于设定frame number值问题原因
前言vdma是xlinx的一款高性能视频dma ip核,其中s2mm_frame_ptr_out是当前操作buffer的指针,但在实际应用中发现了其输出***十进制***大于设定的ring buffer数目。注意上面写的是十进制。原因原因十分简单,是因为xlinx这里输出的是格雷码,注意查看手册,手册里面都有写:同时手册里面给出了解析实例,可以在自己fpga ip核中,或者是c code中加入查找表,迅速查出对应frame number。END还是得多看手册哦...原创 2022-03-01 08:07:27 · 398 阅读 · 0 评论 -
Zynq7000 OPENAMP 实验
前言Zynq7000 openamp实验,最近想做一个多cpu异构系统,后面会用zynqmp去做,先拿zynq7000试一下首先说明,openamp是开源异构多处理通信框架。现在cpu不再像以前单个cpu,而是越来越复杂,比如TI的TDA4芯片,4个A72、两个R5、四个DSP,再比如XILINX的ZynqMP,四个A53,两个R5。一般做法都是A72、A53跑linux或者QNX,R5跑RTOS,在一些实时性较高的场景。环境:PETALINUX2020.1开始首先参考官方的APP UG1186原创 2021-10-27 21:01:30 · 4419 阅读 · 1 评论 -
Zynq Mipi PCIe通路搭建
前言通路搭建整体非常简单,MIPI+PCIE+ZYNQMIPI部分编译时:demosic无法编译问题:https://www.xilinx.com/support/answers/70400.html主要是下面这句compile_c [get_ips design_1_v_tpg_0]驱动使用原创 2021-08-01 16:31:54 · 1994 阅读 · 1 评论 -
Zynq PCIE VCU代码分析
简介本博客讲解了PCIE VCU demo数据传输过程,VCU部分单开一个部分分析开始PCIE架构先看PCIE的框图,其实就是XDMA的封装拆开的形式,XDMA可以认为=PCI IP + DMA IP然后可以看到DMA IP的axi lite接口使能了,然后连接到了一个pcie reg space ip上,同时还有一个AXI lite连接到了Zynq的AXI总线上,用于PS访问,也就是说HOST(PC)可以通过DMA访问该ip,Zynq PS也可以。这个ip是数据传输的中转核心,下面来分析一下原创 2021-07-09 00:01:05 · 766 阅读 · 0 评论 -
Linux下VCU控制软件C++转C[一]
前言开学t瞄的一个一个月了,这肺炎真的恶心啊,感觉要毕不了业了,下面说一下vcu c++转c的简单过程开始转c其实就是把C++的机制在c下实现,如类的构造、析构灯简单举个例子原来c++简单定义一个数据EncoderSink enc;用c来实现 //编码器实例 EncoderSink enc; { //构造 encSinkStructFunc_init((void *)&am...原创 2021-05-28 23:57:24 · 546 阅读 · 1 评论 -
zynq ubuntu桌面LCD移植实现
前言目的:在Zynq上点亮OLED以及SPI LCD做开发显示使用开始使能SSD1306以及9341的驱动&spi0 { status = "okay"; ili9341@0 { compatible = "ilitek,ili9341"; reg = <0>; spi-max-frequency = <50000000>; rotate = <270>; bgr; fps = <30>; buswidth =原创 2021-05-15 23:18:48 · 1060 阅读 · 1 评论 -
zynq7000 AMP双核IPC+SharedMem通信
开始接着上文,然后做双核通信,参考大佬driver:/* dbox-ipc-dev.c - The simplest kernel module.* Copyright (C) 2013 - 2016 Xilinx, Inc** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as pu原创 2021-05-09 20:16:50 · 952 阅读 · 2 评论 -
qt+ffpmeg h264编码
前言最近做摄像头测试需要对视频流图像进行保存,原来想保存raw图以及RGB图像,但是图像数据会很大,所以还是对RGB视频压缩,然后raw图继续保存开始环境搭建QT+FFMEPG下载ffmpeg官网下载https://www.gyan.dev/ffmpeg/builds/下载这个版本pro文件中加入下述INCLUDEPATH += $$PWD/ffmpeg-4.4-full_build-shared/includeLIBS += -L$$PWD/ffmpeg-4.4-full_build原创 2021-04-28 23:55:35 · 531 阅读 · 0 评论 -
Zynq7000 Linux+Bare Rtos实现
前言**环境准备petalinux2019.1 viavdo2019.1开始CPU0:Linux + uart0正常建目录,然后划分空间,memory setting修改一下支持启动参数修改修改设备树/include/ "system-conf.dtsi"/ { amba { remoteproc0: remoteproc@0 { compatible = "xlnx,zynq_remoteproc"; reg = < 0x10000000 0x0f00000原创 2021-04-24 19:09:15 · 659 阅读 · 2 评论 -
Zynq7000 Ps&PL i2c驱动器使用
Zynq7000 Ps&PL i2c驱动OLED前言主要想做点东西,先把i2c在裸机下调通,确保硬件逻辑没问题,然后再到Linux下开发。开始PS下I2c使用Block design如上,这里我把emio用来扩展i2c,并且还搞了一个axi i2c然后sdk demo如下:#define IIC_DEVICE_ID XPAR_PS7_I2C_0_DEVICE_ID/* * The slave address to send to and receive from. */#de原创 2021-04-10 21:30:51 · 1059 阅读 · 0 评论 -
ZCU106 VCU自定义gst app
ZCU106 VCU gst用户app前言环境依旧是:Petalinux19.1 vivado19.1Gstream为VCU定义了类似于管道的东西,采集流水线,方便了用户开发,之前所有程序都是在底层控制软件跑的,现在用一下这个写我们的应用。开始1、之前看pg252说的是添加配方文件,如果需要gstream的话,后来发现可以用meanuconfig来配置,注意这里把gstreamer以及下面的multimedia都选择上,然后开始编译2、编译完毕之后执行peatlinux-build -s原创 2020-05-31 15:18:09 · 1703 阅读 · 4 评论 -
Zynq MPSoC 官方Linux DMA驱动调试
Zynq MPSoC Linux官方DMA驱动调试前言Zynq平台下DMA驱动主要有官方在用户层控制的和某大神写的axi_dma驱动,今天主要用官方的进行测试。环境petalinux 19.1vivado 19.1开始首先搭建逻辑,注意这里DMA用64地址线,不然4GB以上的DDR访问不到,然后输入输出就挂到FIFO上就行。然后FIFO这样挂上去就行然后编译,这是一个漫长的过程,主要是我有个自己的IP以及VCU,所以特别慢。Linux驱动1、首先下载驱动,地址如下:添加链接描述这原创 2020-05-09 23:29:07 · 3180 阅读 · 8 评论 -
Zynq UltraScale Linux A53和裸机 R5共享内存通信
A53&R5 Shared Mem通信原创 2020-03-14 10:29:52 · 4184 阅读 · 8 评论 -
Zynq UltraScale+ A53 Linux+R5裸机
环境PetaLinux2019.1(不要用19.2,19.2产生的镜像存在SD卡错误)Ubuntu16.04Vivado19.1参考手册Ug1209开始1、准备好hdf文件,然后创建工程petalinux-create --type project --template zynqMP --name amp_test2、配置hdf文件petalinux-config --get-...原创 2020-03-12 22:08:40 · 4074 阅读 · 3 评论 -
Zynq UltraScale+ MPSoC使用HLS编译的IP核
Zynq UltraScale+ MPSoC使用HLS编译的IP核前言这几天板子老师给邮寄到家了,编一个图像处理的IP核,反反复复遇到了很多问题,今天记录下开始编译写自己的程序,然后模板如下:void HLS_accel (AXI_VAL INPUT_STREAM[IMG_LEN], AXI_VAL OUTPUT_STREAM[64]){ #pragma HLS INTERFACE ...原创 2020-03-07 00:17:09 · 688 阅读 · 1 评论 -
新年第一章-记录个小问题-Vivado SDK不能修改BSP的问题
Vivado SDK不能修改BSP的问题开始有的时候需要修改赛灵思的sdk或者往bsp里面添加东西,这时候发现老实就给该回去了,修改ecplise里面属性也不行。这时候这个问题出现了,真的绕了我好久,后来发现真的很好解决。解决方案直接在sdk路径下先编辑c文件或者h文件,然后把文件设置为只读!!!#define str(adr, val) __asm__ __volatile__(\ ...原创 2020-02-04 12:07:44 · 2186 阅读 · 1 评论 -
Zynq FreeRtos下开启其他中断(定时器Uart)系统崩掉的问题
FreeRtos下开启其他中断(定时器Uart)系统崩掉的问题问题来源比如我开了freertos然后想用uart中断,然后就发现系统正常工作不了,多任务失效,只有一个任务在跑,调度器工作失败问题原因主要是全局中断实例只能同时存在一个,因为再初始化中断实例的时候会关闭其他中断,源码如下:s32 XScuGic_CfgInitialize(XScuGic *InstancePtr, ...原创 2020-01-04 19:50:40 · 2194 阅读 · 3 评论 -
ZCU106 VCU Linux驱动转裸机驱动篇(四)
开始首先上一张编码器的图:从图中可以看出,编码器由一个MCU控制,然后通过AXI总线和外面数据交互,然后APU通过邮箱和MCU进行数据通信以及交互下面是我们开修改过的probe函数,用在裸机上的,然后虽然名字没变,但里面内容以及大变,我们一次往下看static int al5e_probe(device* pdev){ int err; static int current_min...原创 2020-01-03 10:03:20 · 1032 阅读 · 6 评论 -
ZCU106 VCU Linux驱动转裸机驱动篇(三)
ZCU106 VCU Linux驱动转裸机前言之前感觉都是在做应用层的分析,今天来个驱动层面的吧开始前两篇都是应用层分析,今天分析驱动层面的,首先加载开机打印项[ 7.488846] xilinx-vcu-core a0140000.vcu: No reset gpio info from dts for vcu. This may lead to incorrect functi...原创 2019-12-15 17:34:47 · 1241 阅读 · 0 评论 -
ZCU106 VCU Linux驱动转裸机驱动篇(二)
VCU Linux驱动转裸机驱动前言上一篇说到了上层函数调用硬件驱动,驱动文件libCommon/HardwareDriver.c中,这一片讲一下C++上层控制逻辑,注意大部分数据传输都是调用的的PostMessage~开始系统配置信息1、首先进入主函数: ConfigFile cfg; SetDefaults(cfg); auto& FileInfo = cfg...原创 2019-12-02 20:19:54 · 1346 阅读 · 2 评论 -
ZCU106 裸机NR SHELL移植
ZCU106 裸机NR SHELL移植许久没更了,画了一个月的板子,终于初版画完了,剩下的和师兄对一下接口、然后细节问题就可以投板了,接下来就继续我的裸机VCU了~裸机(用RTOS了其实)没有shell的情况就感觉很别扭,每次下程序又比较麻烦,所以这里便用一个shell去控制,网上有开源了的,所以这里移植一个在我的ZCU106板子上方便后续开发源码github:https://codeloa...原创 2019-11-28 16:18:54 · 880 阅读 · 1 评论 -
Zynq VCU 实时转码测试
Zynq VCU 实时转码Demo性能测试准备视频源: petalinux.xilinx.com/sswreleases/video-files视频帧率转换工具:fmpeg帧率转化命令行:r后面是输出的帧率 ffmpeg.exe -i .\bbb_sunflower_2160p_30fps_normal_hevc.mkv -r 35 out35.mkv视频转图像: ffmpeg -...原创 2019-11-07 23:15:35 · 1438 阅读 · 0 评论 -
ZCU106 VCU Linux驱动转裸机驱动篇(一)
ZCU106 VCU Linux驱动转裸机驱动前言由于某某某原因,本人的毕设上最好用裸机驱动VCU编解码,故应该把Linux驱动单独拿出来驱动,下面开始拿出来了哈哈准备1、vcu_ctrl_sw源码,这是上层控制VCU驱动的,可以直接编解码的,源码链接https://github.com/Xilinx/vcu-ctrl-sw2、准备驱动源码https://github.com/...原创 2019-11-02 19:50:28 · 1824 阅读 · 1 评论 -
Zynq UltraScale+ MPSoC EV系列VCU应用通路搭建
ZCU106开发板VCU应用通路搭建前言编译换了台主机,果然快了很多,下面说一下VCU通路的搭建。其中最主要的是给VCU部分提供时钟,下面说一下开始1、首先看整体的block框图,首先是系统的si570_user输入,这个是板载芯片输出的差分信号,然后输入到VCU_CORE中,VCU核MPSOC通过AXI连接在一起,然后MPSoC和自己写的gpio连接在一起2、打开VCU_CORE,如...原创 2019-11-01 15:40:38 · 3401 阅读 · 2 评论 -
Zynq UltraScale+ MPSoC配置DDR4参数
Zynq UltraScale+ MPSoC配置DDR4参数前言自己做自己的嵌入式产品一般要选择合适的DDR,而这里开发板给的是4GB的UIMM的DDR4,也就是电脑上用的,所以用不了,只能自己挂载Component,这里说一下配置的过程,如何从PDF中拿出参数来开始Zynq DDR控制器1、首先看一下Zynq MPSoC支持的DDR,这里的手册是UG1085,首先是最大支持多少可以...原创 2019-10-29 20:50:22 · 13055 阅读 · 23 评论 -
Zynq VDMA+VID_OUT+V_TC+VGA视频显示通路
Zynq显示通路搭建前言毕设做图像视频编解码,利用zynp mpsoc的VCU硬核去做,所以先搭建一个视频通路,由于zcu106没有vga,hdmi驱动比较麻烦,故这里先用zedboard去做。感谢链接老哥,参考https://blog.csdn.net/long_fly/article/details/79066302开始1、搭建硬件平台,这里和链接不同的是,cut_port.v是...原创 2019-10-21 10:18:32 · 1248 阅读 · 0 评论