在 Vitis 工作空间内有两种类型的工程:
图 1. Vitis 软件平台工程类型
- 工作空间
- 打开 Vitis 软件平台时,会创建工作空间。工作空间即供 Vitis 软件平台用于存储工程数据和元数据的目录位置。初始工作空间位置必须在启动 Vitis 软件平台时提供。
- XSA
- XSA 是从 Vivado Design Suite 导出的。它包含各种硬件规格,例如,处理器配置属性、外设连接信息、地址映射和器件初始化代码等。创建平台工程时,必须提供 XSA。
- 平台
- 目标平台(或称平台)是由硬件组件 (XSA) 和软件组件(域/BSP、FSBL 之类的启动组件等)组合而成的。存储库内的平台不可编辑。工作空间内的平台可编辑,称为平台工程。
- 平台工程
- 平台工程可以提供硬件信息和软件运行时环境。它可定制,您可添加域和修改域设置。平台工程可通过导入 XSA 或者通过导入现有平台的方式来创建。在同一个平台工程上可以创建多个系统工程,以便共享硬件和软件环境设置。
- 域
- 域即板级支持包 (BSP) 或操作系统 (OS),其中包含软件驱动程序集合,您可在其中构建自己的应用。创建的软件镜像仅包含赛灵思库中的部分内容,即您在自己的嵌入式设计中使用的部分。您可创建多个应用并在同一个域上运行。在平台中,每个域都绑定到单个处理器或者一个由同构处理器组成的集群(例如:A53_0 或 A53)。
- 系统工程
- 系统工程用于将任一器件上同时运行的应用组合在一起。在系统工程中,同一个处理器的两个独立应用不能组合在一起。在系统工程中,2 个 Linux 应用可以组合在一起。每个工作空间均可包含多个系统工程。
- 应用(软件工程)
- 每个软件工程包含一个或多个源文件以及必要的头文件,以允许编译和生成二进制输出 (ELF) 文件。每个系统工程均可包含多个应用工程。每个软件工程都必须包含一个对应的域。
Vitis 平台具有多种不同配置以支持不同用例,如下所述:
- 嵌入式
- 此平台支持 Arm® 处理器和 MicroBlaze™ 处理器的嵌入式软件开发。
- 嵌入式加速
- 除嵌入式软件开发外,在此类型的平台上还支持应用加速。此平台可提供时钟、总线接口和中断控制器以供应用内核使用。
- 数据中心加速
- 加速内核与 x86 主机应用均可在此平台上开发。此内核通过使用 PCIe® 总线来进行控制。
以下是 Zynq UltraScale+ MPSoC 的典型 Vitis 软件开发工作空间示例。
图 2.
Zynq UltraScale+ MPSoC 的 Vitis 软件开发工作空间示例
- 用户可以为
Arm®
Cortex®-A53 SMP 集群创建 Linux 集群。可以基于 Linux 域的
sysroot
所提供的库来编译和链接 Linux 应用。 - Arm Cortex-A53 核 0 与 Arm Cortex®-R5F 核 0 可以同时运行 Hello World 应用,这两个应用可组合到同一个系统工程内。
- Arm Cortex-A53 核 0 上的裸机内置自检应用可以在自有系统工程内运行并采用自有 BSP 设置。
- 在 Zynq UltraScale+ MPSoC 器件上,这些系统工程在不同时间运行。任一系统工程内的应用则同时运行。
- FSBL 和 PMU 固件等启动组件可以在平台工程内自动创建。启动组件具有自己的 BSP 设置。