ZYNQ7020_LINUX_VDMA

这篇博客主要介绍了如何利用ZYNQ7020的VDMA功能,通过HDMI接口显示图像。首先,作者生成了图片数组并制作了.bit文件。接着,在设备树中添加VDMA描述。然后,初始化VDMA的读通道,并将图片数据写入内存。最后,探讨了驱动结构和实际显示结果。
摘要由CSDN通过智能技术生成

一、目标

编写VDMA驱动 ,通过HDMI显示一幅图。

二、准备工作

1、生成图片数组

选取一张640*480大小的图片,保存为imag.jpeg,导入到Matlab中执行以下程序,生成vdma_img.h文件。

image = imread('image.jpeg');
img = zeros(1,921600);
for i=1:480
    for j=1:640
    img((i-1)*640*3 +(j-1)*3 + 1 ) = image(i,j,3);
    img((i-1)*640*3 +(j-1)*3 + 2 ) = image(i,j,2);
    img((i-1)*640*3 +(j-1)*3 + 3 ) = image(i,j,1);
    end
end

fid=fopen('vdma_img.h','wt'); 
fprintf(fid,'const unsigned char Image_Shanks[921600] = {');
fprintf(fid,'%d,\n',img);  
fprintf(fid,'};');
fclose(fid);  

2、生成.bit文件

vivado工程可以在米联客的ov7725工程上修改:将摄像头相关的IP删除,保留VDMA、Video-out、HDMI。其中VDMA关闭写通道,读通道设置为Master。
在这里插入图片描述在这里插入图片描述

3、修改设备树

在设备树文件中添加VDMA描述,重新生成设备树文件。

vdma@43000000 {
   
			compatible = "chihong,vdma0";
			chihong,num-frame = <0x03>;
			reg = <0x43000000 0x100>;	
			interrupts = <0 29 4>;
			};

三、裸机程序

1、VDMA初始化

因为只用到了读通道,所以只初始化读通道相关的寄存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值