3、开发环境搭建:Vitis统一软件平台安装、PetaLinux工具链配置、硬件描述文件(XSA)导出
说实话,做嵌入式视觉系统开发,环境搭建往往是第一道坎。很多人觉得不就是装个软件嘛,结果一搞就是两三天。我见过太多同事卡在这一步,不是版本对不上,就是路径配错了。今天咱们就把这事彻底捋清楚。
3.1 Vitis统一软件平台安装
Vitis这个平台,说白了就是AMD(原Xilinx)把原来的SDK和SDAccel整合到了一起。你装一个Vitis,就等于同时拥有了嵌入式开发、加速计算和AI推理的能力。我个人习惯是直接装Vitis Unified Software Platform,而不是分开装各个组件。
核心要点:Vitis安装包自带Vivado,所以不需要单独装Vivado。但要注意,Vitis和Vivado的版本必须严格对应。
安装步骤其实不复杂,但有几个坑我得提前说:
- 下载安装包——去AMD官网下载Vitis Unified Software Platform,大概20GB左右。嗯,记得用下载工具,别用浏览器直接下,容易断。
- 运行安装程序——选择“Vitis”组件,它会自动勾选Vivado和Vitis_HLS。我建议你把所有器件支持都勾上,省得后面换芯片又要重装。
- 设置安装路径——这里要注意,路径里不要有中文,不要有空格。我曾经有个同事把路径写成“D:\AMD 开发工具\Vitis 2024.1”,结果编译时各种报错,折腾了一下午才发现是空格的问题。
- 配置License——如果你有Node-Locked License,直接指定文件就行。如果是浮动License,记得设置环境变量
XILINXD_LICENSE_FILE。
我的小技巧:安装完成后,建议先跑一下Vitis自带的例程,比如"hello_world"。这能快速验证你的安装是否完整。我每次换电脑都会这么做,省得后面调试时才发现环境有问题。
3.2 PetaLinux工具链配置
PetaLinux是AMD专门为嵌入式Linux开发准备的工具链。你想想看,我们要在FPGA上跑Linux系统,还得把视觉算法部署上去,没有PetaLinux还真不行。
配置PetaLinux有几个前置条件,我列一下:
| 组件 | 版本要求 | 备注 |
|---|---|---|
| 操作系统 | Ubuntu 20.04 / 22.04 LTS | CentOS也行,但我更推荐Ubuntu |
| Vitis/Vivado | 2023.2 或 2024.1 | 必须与PetaLinux版本一致 |
| 依赖包 | gcc, make, flex, bison等 | 安装脚本会自动检查缺失项 |
| 磁盘空间 | 至少50GB | 建议留100GB,编译时会生成大量临时文件 |
安装PetaLinux的流程是这样的:
# 1. 下载PetaLinux安装包(约10GB)
# 2. 赋予执行权限
chmod +x petalinux-v2024.1-*.run
# 3. 运行安装脚本
./petalinux-v2024.1-*.run --dir /opt/petalinux
# 4. 设置环境变量(建议加到.bashrc里)
source /opt/petalinux/settings.sh
# 5. 验证安装
petalinux-util --version
注意:PetaLinux对系统依赖包的要求很严格。我曾经在Ubuntu 22.04上装2023.2版本,结果缺少libtinfo5,折腾了半天。建议你安装前先运行petalinux-util --check-system,它会告诉你缺什么包。
配置完成后,我建议你创建一个最简单的工程试试手:
# 创建工程
petalinux-create --type project --template zynqMP --name test_project
# 进入工程目录
cd test_project
# 配置硬件描述
petalinux-config --get-hw-description=/path/to/xsa_file.xsa
# 编译
petalinux-build
第一次编译会比较慢,大概30分钟到1小时。你可以趁这个时间喝杯咖啡,或者看看文档。编译成功后,你会得到images/linux目录下的BOOT.BIN和image.ub,这两个文件就是我们要烧录到板子上的。
3.3 硬件描述文件(XSA)导出
XSA文件,全称是Xilinx Support Archive。它包含了FPGA的硬件配置信息,比如你用了哪些IP核、DDR的配置、时钟频率等等。PetaLinux就是靠这个文件来生成对应的设备树和驱动。
导出XSA的步骤,我习惯在Vivado里操作:
- 完成硬件设计——在Vivado里把Block Design做好,该连的线连好,该配的参数配好。
- 生成比特流——点击"Generate Bitstream"。这一步会综合、实现、生成bit文件。如果你的设计比较大,可能需要等很久。我记得有一次做4K视频处理,综合就跑了3个多小时。
- 导出XSA——点击菜单栏"File" → "Export" → "Export Hardware"。在弹出的对话框里,勾选"Include bitstream"。
关键点:一定要勾选"Include bitstream"!如果不勾,导出的XSA文件只有硬件描述,没有配置数据。PetaLinux编译时会报错,说找不到bit文件。我刚开始做的时候吃过这个亏,查了半天才发现是这里没勾。
导出后的XSA文件大概几MB到几十MB不等。我建议你把它放在一个专门的目录里,比如~/xsa_files/,方便管理。
另外,有个小细节:如果你修改了硬件设计,一定要重新导出XSA,然后重新配置PetaLinux工程。否则你烧录到板子上的Linux系统跟实际硬件不匹配,轻则某些外设不能用,重则系统起不来。
3.4 环境验证:跑通第一个Hello World
环境搭好了,总得验证一下。我习惯用Vitis自带的"Hello World"模板来测试:
# 1. 打开Vitis
vitis &
# 2. 创建新工程
# File → New → Application Project
# 选择你的硬件平台(导入XSA文件)
# 选择模板 "Hello World"
# 3. 编译
# 点击锤子图标,或者按Ctrl+B
# 4. 下载到板子
# 连接JTAG,点击运行按钮
如果一切顺利,你会看到串口输出"Hello World"。嗯,看到这行字,说明你的开发环境已经全部就绪了。
避坑指南:如果你用的是Zynq UltraScale+ MPSoC,记得检查板子的启动模式跳线。我曾经有一块板子,跳线默认是SD卡启动,结果我死活下载不进去程序。后来才发现是跳线没拨对。
好了,环境搭建就到这里。下一章咱们开始讲嵌入式视觉系统的整体架构设计。到时候我会结合一个实际的案例,带你看看怎么把摄像头、ISP、AI加速器这些东西串起来。