有没有办法将设计参数从自定义IP传递到软件



我有一个带有一些设计参数的自定义IP。 它们从 IP 公开,因此我可以在块设计中使用 IP 时自定义它们。

我希望能够在固件代码中使用这些参数。

例如,使用简单的 GPIO 时,xparameters.h标头中公开了几个参数:

#define XPAR_GPIO_0_BASEADDR 0x41200000
#define XPAR_GPIO_0_HIGHADDR 0x4120FFFF
#define XPAR_GPIO_0_DEVICE_ID XPAR_GPIO_DEVICE_ID
#define XPAR_GPIO_0_INTERRUPT_PRESENT 0
#define XPAR_GPIO_0_IS_DUAL 0

除了最感兴趣的基址外,IS_DUAL参数是在块设计中实例化 IP 时设置的。

对于我的自定义 IP,标头中仅公开BASEADDRHIGHADDR

所以,问题是,有没有办法公开我的自定义参数?

xparameters.h 的内容由 IP 的软件驱动程序中的 TCL 脚本生成。如果您尚未创建驱动程序,默认情况下您将获得通用驱动程序,该驱动程序只是将这些地址添加到 xparameters.h。

您可以查看 gpio 驱动程序以了解如何执行所需的操作。它位于 SDK 安装目录下data/embeddedsw/XilinxProcessorIPLib/drivers/gpio_v4_4,TCL 脚本位于data/gpio.tcl。在该脚本中,有一个生成函数,该函数在生成BSP时运行,您可以在其中添加代码来执行所需的任何操作,包括将文本输出到xparameters.h。define_include_file行是输出 GPIO 内核所有这些参数的行。

您可以使用 gpio 或其他方法之一作为创建自己的驱动程序的参考。完成此操作后,将其添加到 SDK 中的存储库列表中,然后修改 BSP 配置以将该驱动程序用于 IP 实例。(或者,如果您创建新的 BSP,它可能会自动选择它。

最新更新