为什么我无法从自定义 AXI lite 外设的寄存器写入 to/read

Why am I not able to write to/read from custom AXI lite peripheral's registers

我正在使用 Zynq 开发板,其中创建了自定义 AXI 4 lite 从属外设,然后从 IP 存储库添加。则这些块已成功连接Run Connection Automation。至此比特流生成成功。

进一步推出了 SDK。有一个空白的 C 项目,其中包含用于 ZYNQ PS 的简单代码。通过遵循 pdf“Designing a custom AXI4 lite Slave Peripheral”(下图中显示的那个)更改了此代码。

Write and read functions for the custom AXI slave peripheral

现在SDK执行没有任何错误,但是当我在SDK监视器上观察地址时,没有写入数据(如下图所示)。

我哪里可能做错了或者我错过了什么? 在 Vivado 16.2 上使用 vhdl。

我已经尝试过:-使用 XSDB 控制台和命令进行处理

mwr -force 0x43C00000 0x01234

那里没有变化。

Checked the Vivado Address editor to contain the same base address included xparamters.h

非常感谢您..

更新:xparameters.h 文件没有与 vivado 地址编辑器相同的基地址和高地址。因此尝试将链接描述文件中的 'memory region' 从 DDR enter image description here 更改为 RAM,

现在,当在 'variables' window 中观察时,当单击 'Step Into' 按钮时,我确实得到了值的预期变化 enter image description here .. XSDB 控制台输出和内存监视器输出保持不变。

hardware platform specification 文件确实显示了具有正确预期基地址和高地址的自定义 AXI lite。enter image description here

Hardware_platform specified

  • 导致此问题的原因之一是与您要使用的调试配置关联的不同硬件平台。

当我们对 IP 进行一些更改并更新它们时,当比特流导出到 SDK 时,将创建一个新的硬件平台。假设旧的是 TOP_WRAPPER_hw_platform_0,现在创建了一个新的 TOP_WRAPPER_hw_platform_1

这个新平台应该在调试配置设置中更新 Hardware platform

进一步在调试配置设置中需要勾选以下内容 在目标设置下

  • 重置整个系统
  • 编程 FPGA

在“应用程序”选项卡下

  • 下载申请

  • 停在'main'