当前位置: 首页 > news >正文

FPGA实现CameraLink视频解码转SRIO与DSP交互,FPGA+DSP多核异构图像处理架构,提供2套工程源码和技术支持

目录

  • 1、前言:SRIO在FPGA+DSP架构中的作用
    • 工程概述
    • 免责声明
  • 2、相关方案推荐
    • 我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目
    • 我这里已有的FPGA+DSP异构方案
    • 我这里已有的 GT 高速接口解决方案
    • FPGA实现CameraLink视频编解码方案
  • 3、工程详细设计方案
    • 工程设计原理框图
    • FPGA端-工程源码架构
    • FPGA端-输入CameraLink相机
    • FPGA端-LVDS视频解码模块
    • FPGA端-LVDS视频对齐
    • FPGA端-SRIO视频组包模块
    • FPGA端-SRIO主设备(initiator)
    • DSP端工程
  • 4、工程源码1详解:FPGA逻辑工程
  • 5、工程源码2详解:DSP RTOS系统工程
  • 6、工程移植说明
    • vivado版本不一致处理
    • FPGA型号不一致处理
    • 其他注意事项
  • 7、上板调试验证
    • 准备工作
    • 程序下载bit
    • DSP RTOS系统工程测试
  • 8、工程代码获取

FPGA实现CameraLink视频解码转SRIO与DSP交互,FPGA+DSP多核异构图像处理架构,提供2套工程源码和技术支持

1、前言:SRIO在FPGA+DSP架构中的作用

SRIO简介:

RapidIO 是由 Motorola 和 Mercury 等公司率先倡导的一种高性能、 低引脚数,基于数据包交换的互连体系结构,是为满足高性能嵌入式系统需求而设计的一种开放式互连技术标准;SRIO 包含三层结构协议,即物理层、传输层、逻辑层,SRIO体系结构如下:
在这里插入图片描述
逻辑层:定义包的类型、大小、物理地址、传输协议等必要配置信息。
传输层:定义包交换、路由和寻址规则,以确保信息在系统内正确传输。
物理层:包含设备级接口信息,如电气特性、错误管理数据和基本流量控制数据等信息。

SRIO收发逻辑框图如下:
在这里插入图片描述
SRIO(Serial RapidIO)在FPGA+DSP异构架构中扮演着高速数据通道与系统互连核心的角色,其作用与优势主要体现在以下方面:

SRIO的核心作用
1、高速数据通道
实时数据传输:FPGA负责前端数据采集(如雷达回波、图像信号),通过SRIO将原始数据直接传输至DSP处理,速率可达 8-10 Gbps(实测效率>80%理论值)。
低延迟交互:点对点传输延迟仅微秒级,满足实时处理需求(如电机控制、雷达成像)。
2、直接内存访问(DMA)
DSP可通过SRIO直接读写FPGA的片上存储或外挂DDR,无需CPU干预。例如:
SWRITE事务实现零开销突发传输,效率达95%以上。
FPGA作为协处理器时,DSP直接获取处理结果(如滤波后图像)。
3、可靠消息通知
门铃(Doorbell)中断:DSP向FPGA发送16位轻量级消息,触发实时响应(如任务启动/停止)。
中断延迟<1μs,优于传统GPIO。
4、系统级扩展性
通过SRIO交换器连接多DSP/FPGA,构建分布式计算网络(如4个DSP+FPGA的基带处理卡)。
支持动态路由与多播传输,适应复杂拓扑。

SRIO的技术优势
1、高带宽与低延迟
在这里插入图片描述
2、硬件级可靠性
错误检测与重传:内置CRC校验与链路层重传机制,误码率<10⁻¹²。
路径冗余:支持多路径备份,单点故障不影响系统运行(关键用于航天电子)。
3、灵活的协议支持
传输模式:
Direct I/O:直接存储映射(NWRITE/NREAD),适合大数据块传输。
Message Passing:信箱机制,支持复杂命令交互(如FPGA向DSP发送状态报告)。
物理层适配:支持1x/2x/4x链路聚合,兼容背板(VPX)、光模块等连接方式。
4、低功耗设计
相比PCIe,SRIO功耗低30-40%(实测1.5W@5Gbps)。
静态功耗<0.1W,适合电池供电设备(如无人机雷达)。

典型应用场景
1、实时图像处理系统
在这里插入图片描述
FPGA完成像素校正,DSP执行AI识别,传输延迟<10ms
2、无线通信基带
FPGA处理ADC采样数据,经SRIO分发至多DSP核(如LDPC解码)。
支持5G Massive MIMO的μs级波束成型。
3、高可靠性系统
航天器中的FPGA+DSP通过SRIO互连,抗辐射设计(如三模冗余)确保太空环境下的数据传输

总结
SRIO在FPGA+DSP架构中的核心价值是:
✅ 突破总线瓶颈:提供>8Gbps的稳定带宽,替代共享总线。
✅ 实现异构协同:FPGA并行预处理 + DSP复杂算法,通过SRIO无缝衔接。
✅ 构建高可靠网络:冗余链路与硬件校验机制,满足军工/航天级需求

工程概述

本文详细描述了Xilinx的7系列FPGA实现CameraLink视频解码转SRIO与DSP交互,搭建FPGA+DSP多核异构图像处理架构,以下从FPGA工程和DSP工程两个方向描述整个设计:

FPGA工程

FPGA工程实现Sensor采集,因为FPGA是并行执行,实时性较好;
FPGA工程主要实现CameraLink视频解码、SRIO视频组包、SRIO数据发送功能;输入视频为CameraLink相机,相机为Full模式,LVDS差分对为12对差分数据+3对随路差分时钟;CameraLink相机LVDS视频对首先送入纯verilog代码实现的LVDS接收解码模块实现LVDS视频解码,输出并行视频数据,LVDS接收解码模块需要用到Xilinx ISERDES2原语;然后解码视频送入纯verilog代码实现的LVDS视频对齐模块实现视频时序恢复,根据CameraLink协议和相机数据手册将并行视频数据恢复为Native视频时序,提取出行同步信号、长同步信号、数据有效信号和视频像素数据;然后解码视频进入纯verilog代码实现的SRIO视频组包模块实现将视频数据封装为SRIO HELLO格式包(SWRITE操作),并在指定数据量后插入门铃通知(DOORBELL操作),最后通过AXI4-Stream接口输出给SRIO IP核;然后调用Xilinx官方的SRIO IP核实现SRIO协议的物理层、传输层、逻辑层,作为SRIO的主设备(initiator),SRIO IP核留出了用户逻辑接口,用户只需要写自己的逻辑电路与之对接即可完成SRIO通信;最后视频数据通过FPGA的GTX高速收发器发送至板载的DSP芯片做后续的图像处理;至此,FPGA的使命已经完成;

DSP工程

DSP工程实现图像处理,因为DSP转为信号处理而设计,便于算法实现;
DSP工程实现 DSP作为SRIO从设备(Target),通过SRIO高速接口接收FPGA发来的视频流,并对视频进行图像处理后通过网口输出PC上位机显示;DSP工程为多核协同工作,跑RTOS操作系统,功能包括通过SRIO接口接收FPGA发送的视频流数据、使用多核并行处理进行图像边缘检测、通过以太网将处理后的图像传输到Web客户端、提供Web界面控制处理参数(处理核数、帧率等)等,经过图像处理后的视频会被压缩为JPEG图片,通过有线网发送到PC端网页显示图片;至此,DSP的使命已经完成;

针对市场主流需求,本博客提供2套工程源码,具体如下:
在这里插入图片描述
现对上述2套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为Xilinx公司的XC7K325T-2FFG676I;FPGA工程主要实现CameraLink视频解码、SRIO视频组包、SRIO数据发送功能;输入视频为CameraLink相机,相机为Full模式,分辨率为2560x2048@107Hz;CameraLink相机LVDS视频对首先送入纯verilog代码实现的LVDS接收解码模块实现LVDS视频解码,输出并行视频数据,LVDS接收解码模块需要用到Xilinx ISERDES2原语;然后解码视频送入纯verilog代码实现的LVDS视频对齐模块实现视频时序恢复,根据CameraLink协议和相机数据手册将并行视频数据恢复为Native视频时序,提取出行同步信号、长同步信号、数据有效信号和视频像素数据;然后解码视频进入纯verilog代码实现的SRIO视频组包模块实现将视频数据封装为SRIO HELLO格式包(SWRITE操作),并在指定数据量后插入门铃通知(DOORBELL操作),最后通过AXI4-Stream接口输出给SRIO IP核;然后调用Xilinx官方的SRIO IP核实现SRIO协议的物理层、传输层、逻辑层,作为SRIO的主设备(initiator),SRIO IP核留出了用户逻辑接口,用户只需要写自己的逻辑电路与之对接即可完成SRIO通信;最后视频数据通过FPGA的GTX高速收发器发送至板载的DSP芯片做后续的图像处理,输出分辨率为2560x2048@107Hz;至此,FPGA的使命已经完成;

工程源码2

DSP工程实现 DSP作为SRIO从设备(Target),通过SRIO高速接口接收FPGA发来的视频流,并对视频进行图像处理后通过网口输出PC上位机显示;DSP工程为多核协同工作,C66xx_0为主核心,C66xx_1~C66xx_7为从核心,跑RTOS操作系统,功能包括通过SRIO接口接收FPGA发送的视频流数据、使用多核并行处理进行图像边缘检测、通过以太网将处理后的图像传输到Web客户端、提供Web界面控制处理参数(处理核数、帧率等)等,经过图像处理后的视频会被压缩为JPEG图片,通过有线网发送到PC端网页显示图片;至此,DSP的使命已经完成;

本文详细描述了FPGA实现CameraLink视频解码转SRIO与DSP交互的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速接口领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便快速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个项目的文章链接,当然,本博文实时更新。。。以下是博客地址:
点击直接前往

我这里已有的FPGA+DSP异构方案

目前我这里有大量FPGA+DSP异构方案的工程源码,包括EMIF、SRIO、PCIE等等,对FPGA+DSP异构方案有需求的兄弟可以去看看:
直接点击前往

我这里已有的 GT 高速接口解决方案

我的主页有FPGA GT 高速接口专栏,该专栏有 GTP 、 GTX 、 GTH 、 GTY 等GT 资源的视频传输例程和PCIE传输例程,其中 GTP基于A7系列FPGA开发板搭建,GTX基于K7或者ZYNQ系列FPGA开发板搭建,GTH基于KU或者V7系列FPGA开发板搭建,GTY基于KU+系列FPGA开发板搭建;以下是专栏地址:
点击直接前往

FPGA实现CameraLink视频编解码方案

我的CameraLink视频专栏有很多FPGA的CaeraLink视频编解码方案,既有CaeraLink接收,也有CaeraLink发送,既有CaeraLink普通输出显示,也有CaeraLink视频拼接输出等等,专栏链接如下:欢迎前往查看:
点击直接前往

3、工程详细设计方案

工程设计原理框图

工程设计原理框图如下:
在这里插入图片描述

FPGA端-工程源码架构

FPGA端工程源码架构如下:
在这里插入图片描述

FPGA端-输入CameraLink相机

输入视频为CameraLink工业相机,相机为Full模式,输出分辨率为2560x2048@107Hz,输出灰度图,输出为4-Tap模式,即一个像素时钟输出4个像素;CameraLink相机如下:
在这里插入图片描述

FPGA端-LVDS视频解码模块

本设计参考了Xilinx官方设计,基于ISERDES2原语实现的LVDS解码模块对输入的CameraLink视频进行解码;LVDS视频解码模块设计框图如下:
在这里插入图片描述
LVDS视频解码模块输入为随路差分时钟对和LVDS差分数据对;利用Xilinx官方IDELAY和ISERDES原语实现串并转换;模块总体代码架构如下:
在这里插入图片描述
IDELAY原语用于接收延时,保证接收端视频的稳定性;ISERDES2原语用于串并转换,将输入串行差分数据转换为并行数据;此外,LVDS解串视频还需要做对齐处理,随路时钟也需要通过MMCM输出同步处理;整个LVDS视频解码模块严格按照设计框图实现,解码模块顶层接口如下:
在这里插入图片描述
这两个参数可自由配置,以适应CameraLink相机的不同模式;具体配置如下:
在这里插入图片描述

FPGA端-LVDS视频对齐

调用LVDS视频对齐模块,根据CameraLink视频协议提取出行同步信号、场同步信号、数据有效信号和像素数据;模块总体代码架构如下:
在这里插入图片描述
模块顶层接口如下:
在这里插入图片描述

FPGA端-SRIO视频组包模块

FPGA端SRIO视频组包模块顶层接口如下:
在这里插入图片描述
解码视频进入纯verilog代码实现的SRIO视频组包模块实现将视频数据封装为SRIO HELLO格式包(SWRITE操作),并在指定数据量后插入门铃通知(DOORBELL操作),最后通过AXI4-Stream接口输出给SRIO IP核;

SRIO视频组包模块核心功能
该模块实现视频流到SRIO协议包的实时转换与传输,主要完成:
1、接收视频数据流(AXIS接口)
2、将视频数据封装为SRIO HELLO格式包(SWRITE操作)
3、在指定数据量后插入门铃通知(DOORBELL操作)
4、通过AXI4-Stream接口输出给SRIO IP核

SRIO视频组包模块系统架构图
SRIO视频组包模块系统架构图如下:
在这里插入图片描述

SRIO视频组包模块工作流程详解
1、视频数据接收与缓冲
本设计调用Xilinx官方的FIFO_DUALCLOCK_MACRO原语实现FIFO缓冲,配置 FIFO 大小为 36Kbit,读写数据的位宽为 64bit(FIFO 深度为 512);如下:
在这里插入图片描述
2、SRIO数据包发送流程如下:
在这里插入图片描述
3、系统状态机设计如下:
在这里插入图片描述
状态说明:
SEND_DATA:发送视频数据包(SWRITE操作)
SEND_DB:发送门铃通知包(DOORBELL操作)

FPGA端-SRIO主设备(initiator)

FPGA工程调用Xilinx官方的SRIO IP核实现SRIO协议的物理层、传输层、逻辑层,作为SRIO的主设备(initiator),SRIO IP核留出了用户逻辑接口,用户只需要写自己的逻辑电路与之对接即可完成SRIO通信;本设计使用Xilinx官方的Serial Rapidlo Gen2 IP核,基础配置如下:
在这里插入图片描述
SRIO配置为5Gbps×2 Lane,对应的GT差分时钟需为125M;工程代码中通过配置cdcm61002时钟芯片输出125M连接至GTX高速收发器BANK;SRIO设计请参考Xilinx官方数据手册《pg007_srio_gen2》;I/O 端口配置使用 HELLO 格式包,其他参数保持默认值即可;

DSP端工程

DSP工程实现 DSP作为SRIO从设备(Target),通过SRIO高速接口接收FPGA发来的视频流,并对视频进行图像处理后通过网口输出PC上位机显示;DSP工程为多核协同工作,C66xx_0为主核心,C66xx_1~C66xx_7为从核心,跑RTOS操作系统,功能包括通过SRIO接口接收FPGA发送的视频流数据、使用多核并行处理进行图像边缘检测、通过以太网将处理后的图像传输到Web客户端、提供Web界面控制处理参数(处理核数、帧率等)等,经过图像处理后的视频会被压缩为JPEG图片,通过有线网发送到PC端网页显示图片;至此,DSP的使命已经完成;

多核协同
DSP工程为多核协同工作,C66xx_0为主核心,C66xx_1~C66xx_7为从核心,跑RTOS操作系统,如下:
在这里插入图片描述
代码功能概述
这是一个基于TI C66x DSP的SRIO图像处理系统主程序,主要功能包括:
1、通过SRIO接口接收FPGA发送的视频流数据
2、使用多核并行处理进行图像边缘检测
3、通过以太网将处理后的图像传输到Web客户端
4、提供Web界面控制处理参数(处理核数、帧率等)

DSP端工程主核心流程图如下:
在这里插入图片描述
DSP端工程主核心程序状态图如下:
在这里插入图片描述
DSP端详细代码解析
1、系统初始化

int main(void) {// 硬件初始化psc_init();          // 电源管理uart_init();         // 串口调试enable_srio();       // 启用SRIOsrio_device_init();  // SRIO设备配置init_sgmii();        // 网络PHY初始化// 多核通信初始化HeapBufMP_create();  // 共享内存MessageQ_registerHeap();MultiProc_setLocalId();// 中断配置CpIntc_dispatchPlug();  // SRIO门铃中断Hwi_create();           // 硬件中断// 任务创建Task_create(image_processing_master);  // 网络服务Task_create(timer_task);               // 统计任务Task_create(image_processing_slave);   // 从核处理Task_create(srio_image);               // 主处理BIOS_start();  // 启动调度器
}

2、SRIO中断处理

void srio_db_isr(UArg arg) {// 获取门铃中断状态CSL_SRIO_GetDoorbellPendingInterrupt(hSrio, 0, &db_status);// 确定数据地址 (双缓冲)srio_data_addr = (db_status == SRIO_DOORB_INFO1) ? SRIO_DATA_ADDR : SRIO_DATA_ADDR + SRIO_TRANS_SIZE;// 通知处理任务Mailbox_post(mbox_image, &srio_data_addr, 0);// 清除中断标志CSL_SRIO_ClearDoorbellPendingInterrupt(hSrio, 0, db_status);
}

3、图像处理任务

void srio_image(UArg arg0, UArg arg1) {while(1) {// 等待SRIO数据Mailbox_pend(mbox_image, &srio_data_addr, BIOS_WAIT_FOREVER);// 帧率控制逻辑if(需要处理帧) {input_image.data = (uint8_t*)srio_data_addr;output_image.data = edge_buffer;// 多核边缘检测mc_process_image(&input_image, &output_image, number_of_cores, &process_time, &sobel_time);// 统计信息更新process_time_total += process_time;sobel_time_total += sobel_time;edge_frame_count++;} else {// 帧丢弃统计drop_frame_count++;}// 通知网络传输if(需要显示) {Mailbox_post(mbox_display, NULL, 0);}}
}

4、网络服务

int image_processing_master(void) {// 网络配置if(使用静态IP) {CfgAddEntry(CFGTAG_IPNET...);  // 添加IP配置} else {CfgAddEntry(CFGITEM_SERVICE_DHCPCLIENT...); // DHCP配置}// 添加Web服务image_processing_webfiles_add();CfgAddEntry(CFGITEM_SERVICE_HTTP...);// 启动网络栈NC_NetStart(hCfg, NetworkOpen, NetworkClose, NetworkIPAddr);
}

5、性能统计任务

void timer_task(UArg arg0, UArg arg1) {while(1) {// 计算帧率edge_frame_rate = edge_frame_count / 时间间隔;// UART输出统计信息uart_printf("\r--> image edge framerate: %5d fps", edge_frame_rate);uart_printf("\r--> image display framerate: %5d fps", display_frame_count);// 重置计数器display_frame_count = 0;edge_frame_count = 0;Task_sleep(1000);  // 1秒间隔}
}

关键数据结构

// 原始图像结构
typedef struct {uint8_t* data;     // 图像数据指针uint32_t length;   // 数据长度
} raw_image_data_t;// 全局图像实例
raw_image_data_t input_image = {0, 0};   // 输入图像
raw_image_data_t output_image = {0, 0};  // 输出图像// 处理缓冲区
#pragma DATA_SECTION(edge_buffer,"systemHeapMaster");
uint8_t edge_buffer[IMAGE_WIDTH * IMAGE_HEIGH];  // 边缘检测结果
#pragma DATA_SECTION(jpeg_buffer,"systemHeapMaster");
uint8_t jpeg_buffer[IMAGE_WIDTH * IMAGE_HEIGH];  // JPEG编码缓冲区

核心价值总结
此代码实现的价值在于:
1、高性能并行处理:
利用多核DSP并行处理图像(C6678支持8核,C665x支持2核)
基于邮箱(Mailbox)的核间通信机制
2、动态参数调整:
通过Web界面实时调整处理核数(number_of_cores)
动态帧率控制(max_of_frames)
3、双缓冲机制:

#define SRIO_DATA_ADDR      0x90000000       // 缓冲区1
#define SRIO_TRANS_SIZE     (IMAGE_WIDTH*IMAGE_HEIGH)
// 缓冲区2 = SRIO_DATA_ADDR + SRIO_TRANS_SIZE

4、实时统计:
边缘检测帧率
处理时间统计
帧丢弃统计
5、灵活网络配置:
支持静态IP/DHCP自动配置
内嵌Web服务器

此系统实现了从高速SRIO接口接收视频流,到多核并行处理,最后通过网络传输的完整图像处理流水线,适用于工业视觉检测、医疗影像处理等实时图像处理场景。

4、工程源码1详解:FPGA逻辑工程

开发板FPGA型号:Xilinx–XC7K325T-2FFG676I;
FPGA开发环境:Vivado2019.1;
视频输入:CameraLink相机,Full模式,分辨率2560x2048@107Hz;
视频输口:SRIO高速接口,分辨率2560x2048@107Hz;
CameraLink视频解码方案:Xilinx官方ISERDES2原语LVDS解码方案;
LVDS差分对:12对差分数据+3对随路差分时钟;
实现功能:CameraLink转SRIO,FPGA为SRIO主设备(Initiator);
工程作用:此工程目的是让读者掌握FPGA实现CameraLink视频解码转SRIO与DSP交互的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、工程源码2详解:DSP RTOS系统工程

开发板DSP型号:TI–TMS320C6678;
FPGA开发环境:CCS5.5;
视频输入:SRIO高速接口,分辨率2560x2048@107Hz;
图像输出:千兆网口,JPEG压缩图片,图片大小2560x2048;
图像处理:Sobel边缘检测、JPEG压缩;
实现功能:DSP为SRIO从设备(Target);
DSP工程操作系统:RTOS操作系统;
工程作用:此工程目的是让读者掌握FPGA实现CameraLink视频解码转SRIO与DSP交互的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;
DSP裸机工程源码架构如下:
在这里插入图片描述

6、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

7、上板调试验证

准备工作

需要准备的器材如下:
CameraLink相机;
CameraLink转接板;
FPGA+DSP异构开发板;
测试用PC电脑;
串口线、网线;
用网线连接FPGA+DSP开发板到PC电脑端;

程序下载bit

步骤如下:(顺序一定要对)
1、先下载FPGA程序
2、再下载从核心DSP程序srio_image_processing_slave.out到至 C66xx_1~C66xx_7;
3、再下载主核心DSP程序srio_image_processing_master.out到至 C66xx0;
如下:
在这里插入图片描述

DSP RTOS系统工程测试

运行 C66xx_0 核心程序,DSP 端串口调试终端将会打印如下信息,开发板使用DHCP模式自动获取IP地址,如下:
在这里插入图片描述
然后在PC电脑端浏览器输入开发板IP地址打开网页界面,在网页界面中选择处理核心数量为Eight cores,选择本设计所使用相机的最高处理帧率为 107fps,如下:
在这里插入图片描述
在这里插入图片描述
点击"Program Item",网页将显示经 DSP 端进行 Sobel(边缘检测)算法处理后的图像,如下:
在这里插入图片描述
同时,DSP 端串口调试终端将会打印处理信息,如下:
在这里插入图片描述

8、工程代码获取

工程代码如下:
在这里插入图片描述

http://www.lryc.cn/news/604524.html

相关文章:

  • 分布式搜索和分析引擎Elasticsearch实战指南
  • 图像处理中级篇 [1]—— 彩色照相机的效果与预处理
  • RAG实战指南 Day 28:RAG系统缓存与性能优化
  • 大模型对比评测:Qwen2.5 VS Gemini 2.0谁更能打?
  • 线性代数常见的解题方法
  • Apache Ignite中分布式信号量(Distributed Semaphore)的说明和使用示例
  • GitPython03-项目setup编译
  • Directory Opus 使用优化
  • CouchDB 从入门到精通:构建高效的分布式文档数据库
  • 2025年ESWA SCI1区TOP,强化学习多目标灰狼算法MOGWO-RL+分布式混合流水车间调度,深度解析+性能实测
  • C++与AI工具(土木工程)高效编程实战
  • 从零开始,在Windows环境部署vllm
  • 如何使用 Conda 安装 Qiskit(详细教程)
  • 第七章:进入Redis的SET核心
  • Java stream 并发问题
  • Redis:缓存雪崩、穿透、击穿的技术解析和实战方案
  • 矩阵指数函数 e^A
  • 如何利用 Redis 的原子操作(INCR, DECR)实现分布式计数器?
  • 微算法科技MLGO突破性的监督量子分类器:纠缠辅助训练算法为量子机器学习开辟新天地
  • 代码随想录算法训练营第五十五天|图论part5
  • Python设计模式详解:策略模式(Strategy Pattern)实战指南
  • OpenBayes 教程上新丨仅激活 3B 参数可媲美 GPT-4o,Qwen3 深夜更新,一手实测来了!
  • 代码随想录day50图论1
  • Apache Ignite 与 Spring Boot 集成
  • 学习游戏制作记录(冻结敌人时间与黑洞技能)7.30
  • nginx安装配置Lua模块的支持
  • 我的世界模组开发教程——资源(1)
  • 【AI】入门级提示词模板:适用于ChatGPT、文心一言等主流模型
  • 【ee类保研面试】数学类---线性代数
  • 从0开始学习R语言--Day62--RE插补