ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试-米尔MYD-JX8MMA7
2023-02-23
2616
来源:米尔电子
本篇测评由电子发烧友的优秀测评者“zealsoft”提供。
本次测试内容为米尔MYD-JX8MMA7开发板其FPGA端程序的修改。
01.
测试例程pcie2screen
使用鼠标点击 ready按钮,demo 窗口会显示连续的视频,说明摄像头、DDR、PCIE接口各部分正常。如果没有接摄像头,该程序会显示杂乱无章的图像。

该测试例的源码没有包括在SDK中,可以向米尔公司的技术人员索取。该实例程序是用Qt开发的,使用了OpenGL技术。程序包括以下几个主要的类:
*MainWindow:QMainWindow子类,是显示窗口的。
*uOpenglYuv:QOpenGLWidget子类,用于显示采集到的图像。该类的initializeGL函数用于初始化OpenGL。paintGL函数是用于绘制图像的,其中最核心的语句是:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, vW, vH, 0, GL_RGBA, GL_UNSIGNED_BYTE, pRGB);
其中的pRGB保存从FPGA读取的数据。从这句我们可以看出该程序所要求的图像的格式。
*xdma_getImg:主线程类
*xdma_programe:对RIFFA接口进行了封装,其中的read_pack用于读取FPGA数据,被主线程循环调用。其函数定义如下:
int xdma_programe::read_pack(char *pData, int len)
{
//int buffer[1920 * 1080];
//int buffer[1024 * 768];
int buffer[1280 * 720];
int i;
if(dev_fd != NULL)
{
fpga_send(dev_fd, 0, buffer, len / 4, 0, 1, 25000);
fpga_recv(dev_fd, 0, buffer, len / 4, 25000);
memcpy(pData, (char *)buffer, len);
return len;
}
else
{
return 0;
}
}
02.
FPGA端程序的修改
我们手头没有摄像头进行测试,所以简单修改该程序,使程序发送蓝色渐变色带信号。
核心修改如下:
……
reg [31:0] rColor = 0;
……
assign CHNL_TX_DATA = (read_en)? {rColor, rColor}:64'd0;
……
3'd3: begin // Start TX with save length and data value
if (CHNL_TX_DATA_REN) begin
//rData <= #1 data_in;
// if (rCount % 5 == 4)
rColor <= #1 rColor + 1;
if(rColor >= 255)
rColor <= #1 0;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
if (rCount >= rLen)
rState <= #1 3'd4;
end
end
…… 新品!8路AHD控制器,赋能工程机械/AMR/农机设备,米尔MRC-B5760上市
新品!SMARC 2.2+八核+6TOPS,米尔MYC-JR3576核心板
即将上市!米尔MRC系列机器人控制器,驱动机器人创新应用
新品!NXP i.MX95旗舰异构平台,米尔SMARC核心板方案落地
全隔离、接口旗舰,米尔电子发布MIC-P5760旗舰全功能工控机
选工控机,就看一台 MIC-B5760
轻量化AI边缘工控机MEC-B5760,算力灵活扩展
新品!AI重构工控机:3款RK3576机型,7大心动理由
纳秒级抖动×24小时零丢帧:RK3576工业级EtherCAT主站全拆解
EdgeLock® 硬件级防护落地,米尔MYD‑LMX9X V2.0.0 引入安全系统