测试方法采用了VDMA仅有MM2S通道, 内存中的图像帧是用MicroBlaze核写入的一个colorbar.

VDMA的mhs部分如下, 因为我的输出用了Digilent的HDMI核,而这个HDMI核是32位的,我自己写了个axis_24_32的位宽转换的ip,这个暂且按下不表:

BEGIN axi_vdma

PARAMETER INSTANCE = axi_vdma_0

PARAMETER HW_VER = 5.04.a

PARAMETER C_USE_FSYNC = 0

PARAMETER C_M_AXIS_MM2S_TDATA_WIDTH = 24

PARAMETER C_MM2S_LINEBUFFER_DEPTH = 4096

PARAMETER C_MM2S_LINEBUFFER_THRESH = 2048

PARAMETER C_INCLUDE_S2MM = 0

PARAMETER C_BASEADDR = 0x7e220000

PARAMETER C_HIGHADDR = 0x7e22ffff

BUS_INTERFACE S_AXI_LITE = axi4lite_0

BUS_INTERFACE M_AXI_MM2S = axi4_0

BUS_INTERFACE M_AXIS_MM2S = axi_vdma_0_M_AXIS_MM2S

PORT s_axi_lite_aclk = clk_100_0000MHzPLL0

PORT m_axi_mm2s_aclk = clk_100_0000MHzPLL0

PORT m_axis_mm2s_aclk = axi_hdmi_0_S_AXIS_MM2S_ACLK

PORT mm2s_fsync_out = axi_vdma_0_mm2s_fsync_out

PORT mm2s_buffer_almost_empty = axi_vdma_0_mm2s_buffer_almost_empty

PORT mm2s_buffer_empty = axi_vdma_0_mm2s_buffer_empty_to_chipscope_ila_0

END

结论:

我也不知道手册上究竟有没有讲这个AXI宽度是32bit,而AXIS宽度是24bit的问题,我反正似乎是没看到.

不过最终实验得到的结论是RAM被充分利用了,也就是比如两个像素A(aabbcc)和像素B(112233)存在RAM中,

最终存储的是(aabbcc112233)而不是(00aabbcc00112233)或(aabbcc0011223300)等之类数据.

实验数据:

1.VDMA设置

2.CPU写RAM

for(offset = VERT * HORI * 1/2; offset < VERT * HORI ; )

{

Xil_Out32LE(Addr+4*offset, 0xefcdab89);

offset++;

}

用的是Xil_Out32LE写RAM,那么实际RAM中存储的顺序是89abcdef 89abcdef ..............

3.Chipscope对AXIS mm2s的监测

(其实我对S_AXI也监测了,不过忘记截图了,也没仔细分析.印象是内存对齐读取,也就是一次读取32bit的有效数据然后分别放到AXIS流的不同字节里)

工程文件与源代码下载

linux访问vdma的数据,Xilinx VDMA 24位流输出与32位AXI总线的内存流数据关系相关推荐

  1. Linux下的32位C程序,linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件...

    1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o 2.linux 系统c语言生成.so文件,----->gcc -sh ...

  2. 64位FME Server 与32位FME Desktop协同处理MDB格式数据

    作者:ZJ 在FME所支持的数据格式中,部分数据格式受限于软件位数,例如常见的GIS数据格式包含SHP(Esri Shapefile).GDB(File Geodatabase).MDB(Person ...

  3. 32位安装linux系统下载,CentOS 5.0 i386官方正式版系统(32位)

    CentOS 5.0 是一个企业级的 Linux 发行版本,它是由上游操作系统提供者(UOP)1提供的可自由使用的源代码重新编译而成.CentOS 完全遵守上游提供者的再发行政策,并且以百分之百的软件 ...

  4. matlab修改图片位深度_BMP位图32位转为24位深度

    帮朋友做一个视频采集和基本处理功能,要求的是.bmp格式 几天下来,通过directshow进行视频采集,并抓去图片保存,按照要求进行业务处理,以前的处理程序是基于RGB24 而显示器是32位真彩色, ...

  5. linux上运行gfortran,linux – gfortran:在64位系统中编译32位可执行文件

    我在AMD Athlon(tm)64 X2双核处理器5200×2上运行Ubuntu 12.10(64位), Linux内核3.5.0-51通用.我有GNU Fortran(Ubuntu / Linar ...

  6. linux内核手帐_linux N卡 steam启动失败解决方案 (32位 库缺失)

    摘要 关于解决 Steam.sh 报错 VERSION_ID: 未绑定的变量 下方 libGL error:  unable ****** rm对应steam官方库后的必装依赖 记录一下之前遇到的li ...

  7. linux64位系统需要安装32位mysql_在Ubuntu16.04 Linux 64位环境下安装二进制版本MySQL 8.0.13...

    a.MySQL依赖于libaio库.如果此库不在本地安装,则数据目录初始化和随后的服务器启动步骤将失败.如果需要,请使用适当的包管理器安装它.例如,基于云计算的系统: hell> apt-cac ...

  8. linux 64位兼容32位,linux的64位操作系统对32位程序的兼容-全面分析

    1.结构体ioctl_trans: struct ioctl_trans { unsigned long cmd; ioctl_trans_handler_t handler; struct ioct ...

  9. Linux内核由32位升到64,将Ubuntu从32位版本升级到64位版本

    问题描述 有没有办法将我的32位版本的Ubuntu升级到64位版本?我使用Ubuntu 9.10. 如果没有简单的方法,如果我仅将home和/etc目录复制到新的安装中,该怎么办? 最佳答案 不幸的是 ...

  10. 【32位系统与64位系统可访问内存的大小】

    64位系统究竟能支持多大内存? 1.理论计算 对较大存储数据的形象解释: 一卷磁带:200MB 一张CD光盘:500MB 一部广播级质量电影:1GB 一卷大型数字磁带:100GB 五万棵树制成的纸:1 ...

最新文章

  1. CCNet 的 Build 流程
  2. Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25
  3. 技术系统进化法则是_技术系统进化法则
  4. Jerry入职SAP成都研究院14周年纪念日
  5. Codeforces 999F Cards and Joy 【dp】【性质】
  6. 微服务架构的核心技术问题
  7. C#建立手机号段全库
  8. CSR8670项目实战:BlueSiri轻智能蓝牙音箱
  9. UART 协议以及概念
  10. java有有哪些锁_java编程中锁状态的分类都有哪些
  11. 8086中寻址方式详解
  12. matlab病毒模拟传播
  13. #原创分享# DDD领域建模---老调新弹之【实体】
  14. 底层小程序员 练手做一个网站不小心赚了几十亿
  15. 概率论基础知识(二) 随机变量及其分布
  16. PDF图片文字如何编辑?ORC图文识别一招搞定
  17. 血战Maven,各种问题,Eclipse控制台乱码,Maven打包时Javadoc失败-UTF-8-BOM编码
  18. 施一公:清华70%的高考状元都去哪了?
  19. android root权限破解分析
  20. 精益生产制造的三要素,了解一下

热门文章

  1. mysql hash分区 子分区_mysql分区管理 - hash分区
  2. KT:一款可提升Kubernetes开发效率的免费工具
  3. 二维码生成,打包下载zip,BigDecimal的取值和计算,java发送http请求
  4. 在Hive中使用Avro
  5. SYNPROXY:廉价的抗 DoS 攻击方案
  6. Linux SocketCan client server demo hacking
  7. 指向类成员的指针并非指针
  8. python中0x3f_Python学习笔记(一):基本数据类型
  9. 万兆网口和千兆网口区别_万兆网卡的安装 以及注意事项
  10. 快速线性筛法求素数一般筛法求素数代码