首页 > 其他分享 >VDMA配置说明

VDMA配置说明

时间:2023-03-12 17:44:12浏览次数:31  
标签:Out32 配置 Xil BASEADDR 说明 VIDEO VDMA define

//BD中设置的3帧缓存地址
#define VIDEO_BASEADDR0 0x01000000
#define VIDEO_BASEADDR1 0x02000000
#define VIDEO_BASEADDR2 0x03000000
#define    AXI_LITE_PL        0x43C00000

#define H_ACTIVE    1280   //行宽、水平方向字节数
#define V_ACTIVE    1024   //行数、垂直方向行数
#define H_STRIDE    1280   //跨度(帧延迟),每一行的偏移

#define    START        0x00000001


int main()
{
    Xil_DCacheDisable();

    //把0x108B写到VDMA_BASEADDR + 0x030地址
    /*****************写数据到DDR进行配置设置(S2MM)**********************/
    Xil_Out32((VDMA_BASEADDR + 0x030), 0x108B);                // enable circular mode
    Xil_Out32((VDMA_BASEADDR + 0x0AC), VIDEO_BASEADDR0);    // start address,存入第一帧开始地址
    Xil_Out32((VDMA_BASEADDR + 0x0B0), VIDEO_BASEADDR1);    // start address
    Xil_Out32((VDMA_BASEADDR + 0x0B4), VIDEO_BASEADDR2);    // start address  每次递增四个字节

    Xil_Out32((VDMA_BASEADDR + 0x0A8), (H_STRIDE*1));        // h offset 1280 bytes(*1)表示数据是一个字节,即每个像素的位宽/8
    Xil_Out32((VDMA_BASEADDR + 0x0A4), (H_ACTIVE*1));        // h size 1280 bytes
    Xil_Out32((VDMA_BASEADDR + 0x0A0),  V_ACTIVE);            // v size 1024
    /*****************从DDR中读数据设置(MM2S)**********************/
    Xil_Out32((VDMA_BASEADDR + 0x000), 0x8B);                 // enable circular mode
    Xil_Out32((VDMA_BASEADDR + 0x05c), VIDEO_BASEADDR0);     // start address
    Xil_Out32((VDMA_BASEADDR + 0x060), VIDEO_BASEADDR1);     // start address
    Xil_Out32((VDMA_BASEADDR + 0x064), VIDEO_BASEADDR2);     // start address  同样每次递增四个字节

    Xil_Out32((VDMA_BASEADDR + 0x058), (H_STRIDE*1));         // h offset 1280 bytes,代表stream每发送(H_STRIDE*1)byte数据后,就产生一个tlast;
    Xil_Out32((VDMA_BASEADDR + 0x054), (H_ACTIVE*1));         // h size 1280 bytes,代表只要vdma从内存取够(H_ACTIVE*1)byte,就会开始stream传输;
    Xil_Out32((VDMA_BASEADDR + 0x050), V_ACTIVE);             // v size 1024


    Xil_Out32((AXI_LITE_PL + 0x0000),START);                //使能图像输出模块
    /*在A8、A4、58、54 这四个寄存器配置有效传输宽度,后面的 “*3” 表示一个像素数据有3个字节,也就是RGB888(24bit),如果是RGBA(32bit),则应该设置为 “*4”
    0x30寄存器(VDMA Control Register,简称 VDMACR)进行配置,0x108B转化成二进制:1000010001011,只看低四位就是1011,对应四个配置
    3    GenlockEn             默认0                                 0:关闭Genlock或动态Genlock同步;1:开启Genlock或动态Genlock同步
    2    Reset                         默认0                                 0:正常操作;1:复位MM2S通道
    1    Circular_Park  默认1                                 0:停留模式;1:循环模式
    0    RS                     默认  0                                 0:VDMA停止;1:VDMA运行;开始前必须置1

    0x00寄存器也是同样

 

标签:Out32,配置,Xil,BASEADDR,说明,VIDEO,VDMA,define
From: https://www.cnblogs.com/tuzki9611/p/17208610.html

相关文章

  • umi4查看webpack配置
    请按照以下步骤进行操作:打开.umirc.ts文件并添加chainWebpack方法。使用console.log()创建一个带有字符串消息的log语句。在console.log()语句后添加以下行以......
  • MybatisPlus(九) 插件的使用~防全表更新与删除插件(配置类篇)
    一、Springboot配置防全表更新与删除插件@ConfigurationpublicclassMybatisPlusConfig{@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor()......
  • jvm配置+OmitStackTraceInFastThrow 导致不打印日志具体信息
    jvm配置+OmitStackTraceInFastThrow导致不打印日志具体信息参考https://blog.51cto.com/u_15246373/5363973最后查到该问题的解决方法有三种1、查询历史日志,如果日志......
  • MybatisPlus(八) 插件的使用~乐观锁插件(配置类篇)
    一、Springboot配置乐观锁插件@ConfigurationpublicclassMybatisPlusConfig{@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){......
  • 微信小程序:配置合法域名
    1、问题背景写微信小程序,当调用request访问外部网站时,经常出现没有配置合法域名而无法调用的情况。遇到这种情况要去微信开发平台配置服务器域名网站必须备案必须是https2、......
  • 配置idea模板
    【1】【2】【3】【4】【5】【6】【7】【8】在代码区域输入上述的提示内容:mmresponse2即可......
  • 记一次在Ubuntu配置nginx自启动失败
    环境:Ubuntu18.04一般情况下,nginx安装之后是可以自启动的,但由于修改了配置可能会导致自启动失败或自启动后不能跳转到所代理的页面。以下是具体解决方法:1.自启动失败,提......
  • MyBatisPlus中进行通用CRUD全局策略配置
    实现通过全局策略配置,开启下划线到驼峰命名的支持,全局配置主键策略,全局配置表明映射前缀。打开项目的applicationContext.xml添加bean<!--定义MybatisPlus的全局策略配置--......
  • 通过keepalived来配置vip
    安装keepalivedyum-yinstallkeepalived启动与自启keepalivedsystemctlstartkeepalivedsystemctlenablekeepalived修改配置文件vim/etc/keepalived/keepalive......
  • Nginx配置实例-动静分离实例:搭建静态资源服务器
    什么是动静分离Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解......