Zynq 7000从零开始之二 -- 内存测试程序

        由于所有的APP都是在DDR中运行的,所以先让DDR工作起来是后续实验的基础.使用的硬件是z-turn开发板.
        本文主要讲怎样创建一个内存测试程序,测试DDR,程序还是运行在内部RAM;FPGA涉及的内容有怎样配置DDR参数,及怎样保存和导入硬件参数;软件方面会涉及BSP修改及           BOOT.bin的 生成.关于Vivado的具体操作请参考--"Zynq 7000从零开始之一 -- helloworld".

        1. 用vivado搭好硬件模型.
              
        在vivado的block design中,PS的DDR Configuration配置如下:
           
        选好Memory Part之后,Memory Part Configuration的参数就自动出来了,不用修改.
                   
        上面是根据DDR手册设置的参数,其他参数默认.

        记得先Create HDL Wraper,再Run Synthesis.我配置好的block design界面如下:
           
        就只有PS部分而已,不用生成bitstream.
        点击file->export->export hardware导出硬件参数给SDK使用,因为没有用到FPGA,所以不用选Include bitstream, 导出到工程文件夹内.
        点击file->launch SDK打开SDK编写软件.

        2. 保存硬件参数

        配置好参数后,把参数保存到硬盘上,下次可以直接导入该配置,后面的实验会基于该实验的配置进行配置.
        在Re-customize IP界面点Presets->Save Configaration将PS配置保存为memtest.tcl.        
        
        3. 软件编写
        
        创建一个Application Project参数如下:
         
          
        点击Next->Memory Tests->Finish.完成的在Project Explorer中多出了两个工程,一个是BSP,别一个是app工程.
        因为使用2.3版本的SD卡驱动有问题,所以我们先把BSP中的SD卡驱动改成2.2版本的,具体方法请参考前一篇文章.
        对源码还需要做些修改:
        1>. 在memorytest.c中包含头文件 #include "ps7_init.h"
        2>. memorytest.c中main函数中,在init_platform前面添加硬件初始化函数ps7_init();
        3>. 将system_wrapper_hw_platform_0中的ps7_init.c包含到memtest工程中.
            右击memtest工程->New->File->Advanced,勾上Link to file in the file system,
            定位到system_wrapper_hw_platform_0下的ps7_init.c文件.
        4>. 将ps7_init.h的路径添加到memtest中的头文件搜索路径.
            右击memtest工程->C/C++ Build Setttings->ARM gcc compiler->Directories,点击右边的添加按钮添加
            路径,在Add directory path对话框中,点Workspace,选中system_wrapper_hw_platform_0.
            
           之后,就可以编译了.

        4. 生成BOOT.bin下载到z-turn板子上运行
        
        编译完成后,右击Project Explorer中的memtest工程->Create Boot Image.
        在Boot image partitions将memtest.elf的partition type更改为bootloader.
                   
        将memtest\memtest.sdk\memtest\bootimage\文件夹下的BOOT.bin copy到SD卡上,插到z-turn板上运行,会出现以下串口信息:
        
--Starting Memory Test Application--
NOTE: This application runs with D-Cache disabled.As a result, cacheline requests will not be generated
Testing memory region: ps7_ddr_0
    Memory Controller: ps7_ddr
         Base Address: 0x00100000
                 Size: 0x3ff00000 bytes 
          32-bit test: PASSED!
          16-bit test: PASSED!
           8-bit test: PASSED!
Testing memory region: ps7_ram_1
    Memory Controller: ps7_ram
         Base Address: 0xffff0000
                 Size: 0x0000fe00 bytes 
          32-bit test: PASSED!
          16-bit test: PASSED!
           8-bit test: PASSED!
--Memory Test Application Complete--
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Zynq-7000是Xilinx推出的一款全新的可编程系统芯片(SoC),其核心特点是将ARM Cortex-A9处理器与可编程逻辑器件(FPGA)集成在一起。ZED是由Digilent和Avnet合作生产的一款基于Zynq-7000 SoC的开发板。 关于Zynq-7000-ZED的资料,您可以从以下几个方面进行了解和获取: 1. 官方文档:Xilinx官方网站提供了针对Zynq-7000 SoC的详细技术资料和应用指南,包括技术手册、用户指南、应用笔记等。这些资料涵盖了硬件设计、软件开发、调试和测试等方面的内容,非常全面详细。 2. 社区论坛:在Xilinx官方网站上,您可以加入或搜索Xilinx社区论坛。这个论坛是一个交流平台,可以与其他用户分享经验和解决问题。在论坛上,您可以找到很多关于使用Zynq-7000-ZED进行开发的实际案例和技术讨论。 3. 参考设计和开发板说明:Digilent和Avnet官方网站上提供了基于Zynq-7000-ZED开发板的一些参考设计和示例代码。这些参考设计涵盖了不同的应用领域,包括图像处理、通信、机器学习等。通过研究这些设计,您可以更好地了解如何使用Zynq-7000-ZED进行应用开发。 4. 在线教程和视频:在互联网上,有许多第三方的在线教程和视频可以帮助您快速入门Zynq-7000-ZED的开发。这些教程和视频通常以实际的项目为例,展示了如何进行硬件设计、软件开发和调试等过程。 总之,Zynq-7000-ZED的资料非常丰富,包括官方文档、社区论坛、参考设计、在线教程等多种渠道。只要您愿意花时间去研究和学习,就能够轻松掌握Zynq-7000-ZED的开发技术和应用方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值