Vitis2020.2软件平台入门
Vitis概述
Vitis 软件开发工作流程
下图显示了Vitis IDE的嵌入式软件应用开发工作流程。
- 硬件工程师负责设计软件开发(从 AMD Vivado™ Design Suite 到 XSA 存档文件)所需的逻辑和导出信息。
- 软件开发者负责通过创建平台来将 XSA 导入 Vitis 软件平台。
- 软件环境设置称为域,同样属于平台的一部分。
- 软件开发者基于平台和域来创建应用。
- 应用可在 Vitis IDE 中进行调试。
- 在复杂系统中,有多个应用同时运行并彼此通信。因此也需要执行系统级别验证。
- 全部就绪后,Vitis IDE 即可帮助创建启动镜像,用于初始化系统和启动应用。
Vitis IDE中的Workspace结构
在Vitis内有两种类型的工程:Platform Project和System Project。
平台工程(Platform Project) 是整个应用开发的基础,包含了软件和硬件之间的接口定义,是连接 硬件设计(Vivado 工程)和Vitis 应用程序的桥梁。主要组成:
硬件描述(XSA 文件)
- 来自 Vivado 导出的
.xsa
文件(Xilinx Support Archive),定义了处理器架构、外设连接等。
- 来自 Vivado 导出的
软件组件
- FSBL(First Stage Bootloader):在裸机或 Linux 启动时负责初始化硬件。
- PMU/PLM 程序(对 ZynqMP/Versal 平台):负责管理功耗或生命周期。
- BSP(Board Support Package):裸机/FreeRTOS/Linux 的设备驱动支持。
系统配置(domain)
不同的 domain 表示不同的处理环境(操作系统+cpu组合),比如:
standalone
(裸机)freertos
linux
- 不同 CPU 核(如 Cortex-A53、R5 等)
device tree(Linux 场景)
- 提供给 Linux kernel 的硬件描述。
系统工程(System Project) 是一个组织多个应用程序(Application Projects)的工程容器,它基于一个已经构建好的Platform(平台)文件来统一管理这些应用程序的构建、调试和部署。简单说System Project就是一个引用现有 Platform、绑定一个或多个 Domain,并包含多个 Application 的高层项目结构。其中Application Projects是具体的软件程序,可编译为可执行文件(如 ELF),每个Application Projects必须绑定到一个 domain。
WorkSpace应用举例
应用背景为Zynq-7000 系列的 AMP,Zynq-7000中,两个Coetex-A9核心分别运行不同功能程序,配置过程如下:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 煤炭镇的小李!