软件开发套件(SDK)

:自 2019.2 起,SDKSDSoC™ 和 SDAccel™ 开发环境被整合为一个多用途的 Vitis™ 统一软件平台,用于应用加速和嵌入式软件开发。SDK 不会有 2019.2 或更高版本。

软件开发套件 (SDK) 是集成型设计环境,可在任何 AMD 获奖微处理器上创建嵌入式应用: Zynq™ UltraScale+ MPSoCZynq 7000 SoC、和业界领先的 MicroBlaze™ 软核微处理器。SDK 是首款应用 IDE,可实现真正的同质及异构多处理器设计、调试和性能分析。优势包括:

  • 支持 Zynq UltraScale+ MPSoC、 Zynq 7000 SoC、和 MicroBlaze
  • 随 Vivado 设计套件提供给嵌入式软件开发人员,也可单独免费下载获取。
  • 基于 Eclipse 4.5.0 和 CDT 8.8.0 (自 2016.3 版起)
  • 完整的集成设计环境 (IDE) 可直接用于连接 Vivado 嵌入式硬件设计环境
  • 实现完整的软件设计和调试流程支持,包括全新多处理器和硬件/软件协调试功能
  • 编辑器、编译器、生成工具、闪存管理和 JTAG 调试集成
  • 整套库与器件驱动
  • 作为 RTOS 集成的 FreeRTOS 现已针对所有平台提供
  • 软件命令行工具 (XSCT) 用于脚本
eclipse

系统调试程序

AMD 系统调试器是一款支持 Zynq UltraScale+ MPSoC、Zynq 7000 SoC 和 MicroBlaze 核的集成型调试器。可使用 XSCT 通过命令行获得,也可在调试应用的 SDK GUI 中获得。它支持所有常见的调试特性,如设置断点或观察点、通过程序执行步进、查看程序变量和堆栈以及查看系统中存储器的内容等。还可以在同一调试环境中同时调试多处理器系统中不同处理器上的程序。例如在基于 Zynq 或基于 Zynq UltraScale+ 的设计中,系统调试器可通过单个 JTAG 线缆在同一个调试会话中显示两个 ARM CPU 和多个 MicroBlaze 软处理器,从而可在硬件化处理系统和已添加至可编程逻辑中的任何附加处理系统之间实现前所未有的深入观察。

  • 基于开源目标通信框架 (TCF)
  • 同质和异构多处理器支持
  • 层次分析
  • 裸机与 Linux 开发,包括 Linux OS-Aware 调试
  • 支持 SMP 和 AMP 设计
  • 关联每个内核的硬件与软件断点。
  • 支持 NEON™ 库
multiprocessor

除了全功能标准软件调试工具的所有特性外, 该系统调试工具还可在 PS 的处理器与 PL 的处理器及硬件之间实现交叉触发。软件编程工具可通过直观的 GUI 设置向 PL 上的外部处理器或硬件发出触发或从这些组件接受触发的条件。 不仅可采集数据,而且还可在不同的工具中显示,从而可在调试过程中提供帮助。

定制设计感知

SDK 了解 Vivado 设计套件中定义的定制嵌入式硬件设计。在该设计基础上,系统会自动配置一些重要的参数,其中包括存储器映射、外设寄存设置、工具和库路径、编译器选项、JTAG 和闪存设置、调试器连接以及Linux、裸机板支持包 (BSP)。 该定制的设计感知预配置与自动生成的关键系统软件完美地整合在了一起,您只需花费少量的学习时间便可快速进行软件开发了。

soft_libraries

驱动程序和库

SDK 为所有支持的 AMD IP 硬核提供了可用户定制的驱动程序,并提供了符合 POSIX 规范的内核库、网络和文件处理库。这些库和驱动程序可以根据功能需要、存储器要求和硬件功能为定制设计进行缩放。

软件特性描述

SDK 提供了性能分析工具,可帮助用户识别因在可编程逻辑中和在处理器上的交互而可能造成的代码瓶颈。支持分级特性描述,能让用户查看是什么调用了函数、或者什么调用函数对处理器性能的影响最大。

系统性能分析和优化

创建高性能 SoC 系统需要时间,还要了解软件和外设之间的交互情况。 帮助您收集性能数据、实现系统可视化的工具对于满足性能目标要求至关重要。AMD 系统性能分析工具箱(XSDK 中提供)可帮助您对系统进行建模、评测、分析和优化。在新的性能视图中,您能查看:

  • 处理器使用率
  • 每个工作周期的指令
  • 高速缓存未命中/击中率
  • 读写时延和 PL 到 PS 接口的带宽
model

系统性能分析工具箱帮助您与系统互动,能调节系统达到您所需的性能目标。

assess_rq

利用上述工具,您能快速发现瓶颈,并就如何进行系统软硬件分区设定假设性情境。您用 AXI 流量生成器可对 IP 块进行性能建模,在完成前这些 IP 块会在可编程逻辑中。完成分析后,就可通过优化软件源代码、拆分处理器和可编程逻辑之间的功能或者将全部功能迁移到可编程逻辑上来提高性能。