2. 开发环境搭建:Vivado与Vitis安装配置、Petalinux工具链安装、JTAG调试器驱动配置
做Zynq开发,第一步就是把工具链搭起来。说实话,这一步看着简单,但坑不少。我见过太多新手卡在环境上,一卡就是好几天。今天咱们就把这事彻底理清楚。
2.1 Vivado与Vitis的安装配置
Vivado是Xilinx的硬件设计工具,Vitis是软件开发环境。从2019.2版本开始,Vitis已经集成到Vivado安装包中了。我个人习惯用2020.1或2021.1,这两个版本比较稳定。
版本选择建议:
- Zynq-7000系列:推荐Vivado 2020.1 ~ 2021.1
- Zynq UltraScale+:推荐Vivado 2021.1以上
- 不要追最新版,稳定第一
2.1.1 安装步骤
- 下载安装包:从Xilinx官网下载,大约40GB。建议用下载工具,别用浏览器直接下。
- 运行安装程序:Linux下给xsetup执行权限,Windows下直接双击。
- 选择版本:选Vivado HL WebPACK或Design Edition。Zynq-7000用WebPACK就够了。
- 勾选组件:必须勾选"Vivado"和"Vitis"。我建议把"Device Support"全选,省得后面缺器件文件。
- 安装路径:不要有中文路径,不要有空格。我习惯放
/opt/Xilinx或C:\Xilinx。
注意:安装过程中会提示安装驱动。Windows下一定要勾选"Install Cable Drivers",否则JTAG用不了。我曾经因为没勾这个,折腾了一下午才发现问题。
2.1.2 环境变量配置
装完以后,需要配置环境变量。Linux下我一般这样配:
# 在 ~/.bashrc 或 ~/.zshrc 中添加
source /opt/Xilinx/Vivado/2020.1/settings64.sh
source /opt/Xilinx/Vitis/2020.1/settings64.sh
# 验证是否生效
which vivado
which vitis
Windows下会自动添加环境变量,但有时候会漏。你可以手动检查一下系统环境变量里有没有XILINX_VIVADO和XILINX_VITIS。
2.2 Petalinux工具链安装
Petalinux是Xilinx官方的嵌入式Linux开发工具。说白了,它帮你自动生成Linux内核、设备树、根文件系统。省去了手动配置的麻烦。
2.2.1 系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 18.04 / 20.04(推荐) |
| 磁盘空间 | 至少100GB |
| 内存 | 至少8GB,建议16GB |
| CPU | 4核以上 |
我的经验:Petalinux对Ubuntu版本很挑剔。2020.1版本只支持Ubuntu 18.04,2021.1支持20.04。如果你用其他发行版,可能会遇到各种依赖问题。我建议直接装一个Ubuntu 20.04的虚拟机,省心。
2.2.2 安装步骤
- 安装依赖包:
sudo apt update
sudo apt install -y gawk wget git diffstat unzip texinfo gcc build-essential \
chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \
iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
pylint3 xterm python3-distutils
- 下载Petalinux安装包:从Xilinx官网下载,约10GB。
- 运行安装脚本:
chmod +x petalinux-v2020.1-final-installer.run
./petalinux-v2020.1-final-installer.run /opt/petalinux/2020.1
- 配置环境变量:
source /opt/petalinux/2020.1/settings.sh
注意:Petalinux不能以root用户安装和运行。我曾经在root下试过,结果编译到一半报错,查了半天才发现是权限问题。一定要用普通用户。
2.2.3 验证安装
petalinux-util --version
# 输出类似:PetaLinux v2020.1 (x86_64)
如果能正常输出版本号,说明安装成功了。
2.3 JTAG调试器驱动配置
JTAG调试器是连接PC和Zynq开发板的桥梁。Xilinx官方用的是Digilent的调试器,比如JTAG-HS3、JTAG-SMT2。也有第三方的,比如SEGGER J-Link。
2.3.1 Linux下的驱动配置
Linux下,Xilinx的JTAG调试器使用libusb驱动。默认情况下,系统会把调试器识别为普通USB设备,普通用户没有权限访问。需要配置udev规则。
- 创建udev规则文件:
sudo nano /etc/udev/rules.d/99-xilinx-jtag.rules
- 添加以下内容:
# Xilinx JTAG调试器
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="1366", ATTR{idProduct}=="0101", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="1443", ATTR{idProduct}=="0007", MODE="0666"
- 重新加载udev规则:
sudo udevadm control --reload-rules
sudo udevadm trigger
- 验证驱动:
lsusb | grep -E "0403|1366|1443"
# 应该能看到调试器设备
常见调试器ID对照表:
| 调试器型号 | Vendor ID | Product ID |
|---|---|---|
| Digilent JTAG-HS3 | 0403 | 6014 |
| Digilent JTAG-SMT2 | 0403 | 6010 |
| Xilinx Platform Cable USB II | 1366 | 0101 |
| Xilinx USB Cable | 1443 | 0007 |
2.3.2 Windows下的驱动配置
Windows下相对简单。安装Vivado时,如果勾选了"Install Cable Drivers",驱动会自动装好。如果没有,可以手动安装:
- 打开设备管理器,找到带黄色感叹号的设备。
- 右键更新驱动,选择"浏览我的电脑以查找驱动程序"。
- 路径选择:
C:\Xilinx\Vivado\2020.1\data\xicom\cable_drivers\nt64\ - 安装完成后,设备会显示为"Xilinx USB Cable"。
注意:Windows下如果驱动安装失败,可能是数字签名问题。需要禁用驱动签名强制验证。具体操作:重启电脑,按F8进入高级启动选项,选择"禁用驱动程序签名强制"。
2.3.3 测试JTAG连接
驱动装好后,可以用Vivado的硬件管理器测试连接:
# 打开Vivado
vivado
# 在Tcl Console中输入
open_hw_manager
connect_hw_server
open_hw_target
# 如果能看到设备,说明JTAG连接正常
也可以用命令行工具测试:
# 列出JTAG设备
lsusb -v | grep -E "iSerial|iProduct"
# 或者用Vivado的hw_server
hw_server -d
# 输出应该显示检测到的JTAG设备
2.4 环境验证与常见问题
装完所有工具后,我建议做一个完整的验证。创建一个最简单的Zynq工程,编译一下,看看能不能正常跑通。
我的习惯:每次装完环境,我都会用petalinux-create -t project --template zynq -n test创建一个测试工程,然后petalinux-build。如果能编译通过,说明环境没问题。这一步虽然花点时间,但能避免后面出大问题。
2.4.1 常见问题排查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| Vivado启动报错 | 缺少libtinfo.so.5 | sudo apt install libtinfo5 |
| Petalinux编译失败 | 磁盘空间不足 | 清理/tmp目录,或设置PETA_TMP_DIR |
| JTAG无法识别 | udev规则未生效 | 重新插拔USB线,或重启udev服务 |
| Vitis无法启动 | Java版本不兼容 | 安装OpenJDK 11 |
2.5 开发环境整体架构
下面这张图展示了整个开发环境的架构关系。你看一眼就能明白各个工具是怎么配合的。
从这张图你能看到,整个开发流程是自上而下的。先用Vivado做好硬件设计,生成比特流和硬件描述文件。然后用Vitis或Petalinux做软件开发。最后通过JTAG调试器把程序下载到板子上,用串口终端查看运行结果。
总结一下:
- Vivado负责硬件,Vitis负责软件,Petalinux负责Linux系统
- JTAG调试器是连接PC和开发板的桥梁
- 环境搭建的关键是版本匹配和驱动配置
- 装完后一定要做完整验证,别偷懒
嗯,环境搭建这块就讲到这里。工具链装好了,后面咱们就能真正开始做项目了。记住,环境问题是最容易解决的,也是最容易卡住人的。按照上面的步骤来,应该不会出大问题。如果遇到什么奇怪的问题,先检查版本匹配,再检查驱动,最后检查权限。这三板斧下去,90%的问题都能解决。