当实现 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
目录中)。
文件路径 | 使用模式 | 描述 |
---|---|---|
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.c、xexample_sinit.c 和 xexample_linux.c 中提供,可提供用于以下操作的函数。
- 初始化器件
- 控制器件并查询其状态
- 读写寄存器
- 设置、监测和控制中断
请参阅 Vitis HLS C 语言驱动程序参考资料 以获取 C 语言驱动程序文件中提供的 API 函数的描述。
重要: C 语言驱动程序 API 始终使用无符号的 32 位类型 (U32)。您可能需要将 C 语言代码中的数据强制转换为期望的类型。