ps读写ddr3里面的数据 zynq_【干货分享】ZYNQ常用外设设计 (下)

上一篇:【干货分享】ZYNQ常用外设设计 (上)

f1a07783ade396e1efe0e0a69efea8d6.gif ZYNQ对Memory的操作 参考工程见“ ZYBO_Memory_GPIO_Interrupt_demo.xpr ”。 ZYNQ有专用的DDR Controller接口,如果外部硬件连接了DDR器件,于是在ZYNQ Processing System中正确配置了相应的信号和参数后,DDR就可以成为ZYNQ的内存,在SDK中可以直接使用memcpy、memset以及类似的函数对于Memory空间进行操作。 Step1:查看ZYBO的原理图,找到相应的配置。 ZYBO原理图中与DDR相关的部分如图 49所示。 9bfaa42d2cdcee9ebf752f98d0e719fd.png 图 49 于是得到两个信息,第一个所使用的芯片是MT41J128M16JT-125,第二个是两片DDR3颗粒是通过位拼接完成的,也就是数据位宽为32bit。 Step2:在Block Design中对DDR部分的参数进行配置。 fba911393be3b0b56c8cdca29c853d4f.png 图 50 Step3:完成Block Design设计,产生Bitstream,导入SDK。 b6963a5cf5fe664be0a6ad61e551390d.png 图 51 Step4:在SDK中编写Memory测试代码。
#include #include #include "platform.h"#include "xil_printf.h"#include "xil_types.h"#include "xil_io.h"int main(){
        u32 test_src[100];    int i;    int readback;     init_platform();    u32 *result = (u32*) malloc(sizeof(u32) * 100);     if (result) {
           memset(result, 0, sizeof(u32) * 100);    } else {
           return 0;    }     for(i=0;i<99;i++)    {
           test_src[i]=i;    }    memcpy(result,test_src,100 * sizeof(u32));     for(i=0;i<100;i++)    {
           read
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值