SDK 构建与处理器调试
798 字约 3 分钟
2026-09-16
前置条件
先完成 HARD 并核对实际顶层包含处理器、硬件描述已导出且与 bitstream 对应。配置 digital-ide.prj.xsdk.install.path 指向可用 XSCT/Vitis 目录;工具版本应匹配硬件工具链。
Zynq-7000 裸机示例,只修改 soc 中相应字段:
{
"soc": {
"core": "ps7_cortexa9_0",
"os": "standalone",
"app": "Hello World"
}
}app 也支持应用模板数组;多个应用时通过 Select ELF 明确选择下载目标。操作系统/模板的实际支持取决于 XSCT 安装与处理器,不是把字符串写进配置就能构建任意系统。
创建、构建和下载
- SOFT Options → Launch:读取硬件描述,创建或更新软件平台/应用。
- Build:编译 BSP 和应用,检查 ELF 产物。
- Select ELF:选择本次构建的应用和匹配处理器。
- Download:按提示选择是否同时下载 bitstream;初始化处理器并下载 ELF。
- 查看 Output 中目标、下载结果和处理器状态。Hello World 的串口输出需要另行连接正确 UART,不能仅用 Running 状态代替验证。
控制会话与 GDB
SOFT Options 根据 property.json 的 soc.core 只显示匹配的处理器控制入口;例如 ps7_cortexa9_0 显示 Zynq-7000,ZynqMP A53/R5 和 MicroBlaze 使用各自入口。
| 操作 | 用途 |
|---|---|
| Status | 查询处理器状态 |
| Halt / Stop | 暂停执行 |
| Run | 继续执行 |
| Reset | 重置处理器,不重新编译程序 |
| Start Xilinx PS GDB server | 启动目标的 GDB 服务 |
| Generate Xilinx PS GDB configuration | 在工作区生成相应调试配置 |
| Stop managed Xilinx PS GDB server | 停止插件管理的 GDB 服务 |
digital-ide.xilinx.ps.hwServer.* 配置服务端位置;digital-ide.xilinx.ps.gdb.* 配置对应 GDB 和端口。通过 Generate Configuration 或 Start and Prepare 生成调试配置后, 选择 Digital IDE: ... 配置即可直接按 F5。F5 会先自动启动或复用 hw_server、复位并初始化 目标处理器、按配置下载 bitstream,然后由 GDB 加载 ELF。生成的配置使用 cppdbg,需要安装 Microsoft C/C++ 扩展 ms-vscode.cpptools;Digital IDE 扩展包会包含该扩展。
只修改 C/C++ 源码并重新 Build 时可以直接再次 F5。修改硬件描述、处理器、ELF 路径或下载 模式后,应重新生成配置。生成后仍需核对 ELF 路径与目标,确保符号来自当前程序。
下载失败时依次核对 JTAG 连接、目标选择、PS 初始化文件、ELF 架构和硬件描述。不要通过反复修改 soc.core 试猜实际处理器。
F5、下载和处理器控制会先进行只读硬件检测,不仅检查 TCP 端口,还检查 JTAG/处理器枚举。空目标或连接失败时先重连一次;如果仍失败且服务由当前插件会话启动,自动重启该服务一次并重新检查。外部服务不会被自动结束,Output → Digital-IDE Software 会给出服务地址和恢复建议。MicroBlaze 下载前先检查 JTAG,因为软核要在下载 bitstream 后才出现。目标不匹配或匹配到多个处理器时会停止操作,避免选错设备。