C 语言驱动程序文件 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

当实现 AXI4‑Lite 从接口时,会自动创建一组 C 语言驱动程序文件。这些 C 语言驱动程序文件可提供一组 API 以集成到 CPU 上运行的任意软件中,并且这些 API 可用于通过 AXI4‑Lite 从接口与器件进行通信。

这些 C 语言驱动程序文件是在 IP 目录中将设计封装为 IP 时创建的。

针对独立模式和 Linux 模式会创建驱动程序文件。在独立模式下,驱动程序的使用方式与任何其他 AMD 独立驱动程序的使用方式并无不同。在 Linux 模式下,会将所有 C 语言文件 (.c) 和头文件 (.h) 都复制到软件工程中。

驱动程序文件和 API 函数的名称衍生自综合的顶层函数。在上述示例中,顶层函数称为“example”。如果顶层函数名为“DUT”,那么在以下描述中名称“example”将被替换为“DUT”。驱动程序文件是在封装的 IP 内创建的(位于 solution 内的 impl 目录中)。

表 1. 名为“Example”的设计的 C 语言驱动程序文件
文件路径 使用模式 描述
data/example.mdd 独立访问 驱动程序定义文件。
data/example.tcl 独立访问 SDK 用于将软件集成到 SDK 工程中。
src/xexample_hw.h 都适用 定义所有内部寄存器的地址偏移。
src/xexample.h 都适用 API 定义
src/xexample.c 都适用 独立 API 实现
src/xexample_sinit.c 独立访问 初始化 API 实现
src/xexample_linux.c Linux 初始化 API 实现
src/Makefile 独立访问 Makefile

xexample.h 文件中定义了 2 个结构体。

XExample_Config
用于保存 IP 实例的配置信息(每个 AXI4‑Lite 从接口的基址)。
XExample
用于保存 IP 实例指针。大部分 API 使用此实例指针作为首个实参。

标准 API 实现在文件 xexample.cxexample_sinit.cxexample_linux.c 中提供,可提供用于以下操作的函数。

  • 初始化器件
  • 控制器件并查询其状态
  • 读写寄存器
  • 设置、监测和控制中断

请参阅 Vitis HLS C 语言驱动程序参考资料 以获取 C 语言驱动程序文件中提供的 API 函数的描述。

重要: C 语言驱动程序 API 始终使用无符号的 32 位类型 (U32)。您可能需要将 C 语言代码中的数据强制转换为期望的类型。