vivado SDK 图像处理

使用vivado HLS生成的IP核,在vivado中实现两幅图像处理,使用VDMA进行图像的收发工作,SDK中VDMA的处理如下

使用这段程序无噪点和顶部噪点问题,完全适合

void VDMA1_setting(unsigned int width, unsigned int height,

       unsigned int s2mm_addr, unsigned int mm2s_addr) {

    //S2MM

    Xil_Out32(VDMA1 + 0x30, 0x3); //reset   S2MM VDMA Control Register

    usleep(10);

    Xil_Out32(VDMA1 + 0x30, 0x8); //genlock

    //Xil_Out32(VDMA1 + 0x30, 0x0); //S2MM VDMA Control Register

    Xil_Out32(VDMA1 + 0xAC, s2mm_addr); //S2MM Start Addresses

    Xil_Out32(VDMA1 + 0xAC + 4, s2mm_addr);

    Xil_Out32(VDMA1 + 0xAC + 8, s2mm_addr);

    Xil_Out32(VDMA1 + 0xA4, width * 4); //S2MM Horizontal Size

    Xil_Out32(VDMA1 + 0xA8, width * 4); //S2MM Frame Delay and Stride

    Xil_Out32(VDMA1 + 0x30, 0x3); //S2MM VDMA Control Register

    Xil_Out32(VDMA1 + 0xA0, height); //S2MM Vertical Size  start an S2M

    Xil_DCacheFlush();

 

    //MM2S

    //Xil_Out32(VDMA1 + 0x00, 0x00034083); // enable circular mode

    Xil_Out32(VDMA1 + 0x00, 0x00000003); // enable circular mode

    Xil_Out32(VDMA1 + 0x5c, mm2s_addr); // start address

    Xil_Out32(VDMA1 + 0x60, mm2s_addr); // start address

    Xil_Out32(VDMA1 + 0x64, mm2s_addr); // start address

    Xil_Out32(VDMA1 + 0x58, (width * 4)); // h offset

    Xil_Out32(VDMA1 + 0x54, (width * 4)); // h size

    Xil_Out32(VDMA1 + 0x50, height); // v size

    Xil_DCacheFlush();

}

void VDMA2_setting(unsigned int width, unsigned int height,

       unsigned int mm2s_addr) {

    Xil_Out32(VDMA2 + 0x00, 0x00000003); // enable circular mode

    //Xil_Out32(VDMA2 + 0x00, 0x00034083); // enable circular mode

    //0x00034083

    Xil_Out32(VDMA2 + 0x5c, mm2s_addr); // start address

    Xil_Out32(VDMA2 + 0x60, mm2s_addr); // start address

    Xil_Out32(VDMA2 + 0x64, mm2s_addr); // start address

    Xil_Out32(VDMA2 + 0x58, (width * 4)); // h offset

    Xil_Out32(VDMA2 + 0x54, (width * 4)); // h size

    Xil_Out32(VDMA2 + 0x50, height); // v size

    //Xil_Out32(VDMA1 + 0x50, height); // v size

    //

    Xil_DCacheFlush();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值