Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

引言:上一篇文章我们介绍了ZYNQ SOC设计流程及Hello Word实验,本节我们在上一节实验的基础上继续使用Xilinx SDK自带的测试例程测试内存和DRAM,以验证SOC芯片及SDRAM是否可以正常工作,实验内容包括:

  • ZYNQ SOC片上内存测试
  • DDR3 DRAM测试

1.实验系统框图

本实验系统框图如图1所示。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

图1、实验系统框图

2.硬件平台设计

本节硬件平台与上一节Xilinx ZYNQ SOC入门基础之Hello Word实验中完全相同,不再介绍。

3.软件设计

我们打开上一节Vivao工程,并打开SDK软件开发环境,如图2所示。图3显示了上一节的软件例程。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

图2、加载SDK

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

图3、HelloWord软件例程

3.1 ZYNQ SOC片上内存测试

Step1:新建软件应用工程。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step2:工程命名OCM_Test,点击NEXT。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step3:选择Memory Tests,点击Finish,给电路板上电。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step4:建好的OCM_Test工程如图所示。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step5:在OCM_Test上右击,选择Debug_As,然后选择Debug Configurations....

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step6:在Xilinx C/C++ application(System Debugger)上双击。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step7:选中产生的Debug_OCM_Test.efl,并勾选上Reset entire system和Program FPGA,然后点击Debug。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step8:加载数据流

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step9:在控制台添加串口

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step10:SDK Terminal显示片上存储器测试信息,可以看到片上存储器测试通过。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

3.2 DDR3 DRAM测试

Step1:新建软件应用工程。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step2:工程命名DDR3_Test,点击NEXT。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step3:选择Zynq DRAM tests,点击Finish,给电路板上电。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step4:建好的DDR3_Test工程如图所示。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step5:在DDR3_Test上右击,选择Debug_As,然后选择Debug Configurations....

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step6:在Xilinx C/C++ application(System Debugger)上双击。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step7:选中产生的Debug_DDR3_Test.efl,并勾选上Reset entire system和Program FPGA,然后点击Debug。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step8:加载数据流

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step9:点击运行按钮

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step10:SDK Terminal显示测试DRAM选项,可以选择不同的测试DRAM测试长度。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step11:我们选择测试“4”,DRAM测试空间256MB。控制台中输入4,然后点击Send。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

Step11:测试结果如图所示,完成DDR3 DRAM测试。

Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验

 

至此,我们完成了ZYNQ SOC片上存储器测试以及外部DDR3 DRAM硬件测试,可以验证存储器硬件设计正确。

 

更多其他技术文章可以关注我的微信公众号“FPGA技术实战”,欢迎交流 !

 

  • 9
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
在Hololens 2上使用Unity开发时,实现空间锚点的定位,使用Microsoft提供的Mixed Reality Toolkit (MRTK)。MRTK是一个开源的工具包,为Hololens和Windows Mixed Reality设备提供了许多基础功能和开发工具。其中包括空间锚点的定位。 具体实现步骤如下: 1. 在Unity中导入MRTK,并创建一个新的MRTK项目。 2. 添加空间锚点:在Unity场景中创建一个新的游戏对象,然后将SpatialAnchor组件添加到该对象上。 3. 将空间锚点与场景中的对象进行关联:在Unity场景中创建一个需要关联的对象,然后在该对象上添加SpatialObjectAnchor组件。在SpatialObjectAnchor组件中,选择要关联的空间锚点。 4. 编写代码实现空间锚点的定位:在Unity中编写C#脚本,在脚本中调用MRTK提供的SpatialAnchorManager类,实现空间锚点的定位。例如: ```csharp using Microsoft.MixedReality.Toolkit; using Microsoft.MixedReality.Toolkit.SpatialAwareness; public class SpatialAnchorManagerExample : MonoBehaviour { private IMixedRealitySpatialAwarenessSystem spatialAwarenessSystem; private GameObject spatialAnchorGameObject; private void Start() { spatialAwarenessSystem = CoreServices.GetSpatialAwarenessSystem(); spatialAwarenessSystem.Register(gameObject); } private void OnDestroy() { spatialAwarenessSystem?.Unregister(gameObject); } public void CreateSpatialAnchor() { // Create a new spatial anchor spatialAnchorGameObject = new GameObject("Spatial Anchor"); spatialAnchorGameObject.AddComponent<SpatialAnchor>(); // Add the spatial anchor to the spatial awareness system var anchorService = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealityAnchorService>(); anchorService.CreateAnchor(spatialAnchorGameObject); } public void DestroySpatialAnchor() { // Remove the spatial anchor from the spatial awareness system var anchorService = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealityAnchorService>(); anchorService.RemoveAnchor(spatialAnchorGameObject); // Destroy the spatial anchor game object Destroy(spatialAnchorGameObject); } } ``` 通过调用CreateAnchor方法,可以在Hololens 2中创建一个新的空间锚点。通过调用RemoveAnchor方法,可以将空间锚点从Hololens 2中移除。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA技术实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值