如何在 Arty Z7-20 开发板上使用 PetaLinux 运行一个简单的应用程序
扫描二维码
随时随地手机看文章
对于初学者而言,基于 Zynq-7000 系统级芯片(SoC)的开发板是一个很好的起点。它们在易于获取的在线学习资料、可控的复杂度以及可编程逻辑(PL)和处理系统(PS)方面的有用资源方面都表现得相当出色。这些特性使得它们非常适合用于构建有趣项目、学习 HDL 编程以及熟悉 ARM Cortex-A9 处理器。以我个人的经验来看,在转向超大规模+多处理器系统级芯片之前先以这个 SoC 作为“热身”训练是正确的决定,因为它帮助我避免一次性处理过多的复杂性。
在本教程中,我们将介绍如何在 Arty Z7-20 开发板上使用 PetaLinux 运行一个简单的应用程序,同时以 Windows 11 作为主要操作系统。该教程将逐步引导您完成从设置虚拟机(VM)、创建 PetaLinux 项目,到运行使用板上可用的开关和 LED 的简单应用程序的各个步骤。
在本教程中,我们将使用 Vivado、Vitis 和 PetaLinux 2025.2。Vivado 和 Vitis 将安装在 Windows 操作系统上。
重要文件/资料
在开始具体操作之前,请务必按照以下文档中的指示进行下载/在浏览器标签页中打开相关文件:
- UG1144:派特拉inux工具文档:参考指南
- PetaLinux 2025.2:产品更新版本说明及已知问题(请务必登录至 AMD 门户网站)
- AMD 专用软件下载页面:Petalinux 工具 – 安装程序
安装要求
下面从 UG1144 中截取的屏幕截图展示了我们在设置虚拟机时应考虑的最低配置要求。
设置 Ubuntu 虚拟机
考虑到我们无法使用最新版的 Ubuntu 系统,您可以点击以下链接并下载 ubuntu-22.04-desktop-amd64.iso 这个版本的 Ubuntu 系统。这个版本的 Ubuntu 满足了 AMD 提供的要求。
在 Oracle 虚拟机箱软件中,按照如下步骤创建一个新的虚拟机。
请确保磁盘大小至少为 100GB,并且如果条件允许的话,将 CPU 数量设置为大于 1。如果只有一个 CPU,虚拟机可能运行速度不够快且效率不高。
完成初始设置后,进入新创建的虚拟机的设置界面,选择“存储”和“控制器:IDE”菜单下的“光驱”选项,然后将 Ubuntu 的下载镜像(.iso)文件设置为该选项的值。
在同一个菜单中向下滚动,然后设置共享文件夹,该文件夹将用于在 Windows 操作系统和 Ubuntu 虚拟机之间共享文件。
启动虚拟机并完成初始设置后,前往“拖放”菜单,并将其设置为“双向”。
安装 Petalinux
打开一个新的终端窗口,并执行以下命令:
执行以下操作:
重新启动后,再次打开终端并运行以下命令:
请注意,我们需要更改所有者,因为我们需要以非根权限的用户身份进行操作。完成上述步骤后,我们还需要对“petalinux”目录执行同样的操作。
然后,打开本指南开头处下载的 open.xlsx 文件,并将“Ubuntu 桌面/服务器 64 位”字段下的命令复制并粘贴到终端中。这样就能安装 Petalinux 所需的所有必要软件包。
另外还需安装以下内容:
Petalinux 工具要求主机系统必须使用“bash”命令行界面,如下面的截图所示。
在终端中运行以下命令:
输出结果应类似于以下这样:
在成功安装 petalinux 之后,请记住,从现在起,每次打开新终端后都需要执行以下命令:
构建 Vivado / Vitis 项目
在此示例中,我将在 Vivado 中构建一个简单的设计,该设计将利用我们开发板上可用的 LED、按钮和开关。建议其中一个 LED 的控制完全由 PL 端实现——这样我们就能确保在加载程序后硬件配置正确无误。其余的 LED 和 RGB 则通过 PS 端进行控制。
从 Vivado 中导出硬件,并在 Vitis 中创建平台+“Hello_World”项目。我修改了 my.c 代码,以便能够通过开关和按钮来控制 RGB 信号。
通过在 Vitis 环境下运行裸金属代码,我们能够确保并再次确认我们的设计/代码能够正常运行,并且软件已准备好迁移到 Petalinux 系统。
创建 Petalinux 项目
复制。从 Vivado 中生成的 XSA 文件已存入共享文件夹中。接下来,在虚拟机中,打开一个新的终端窗口,并运行以下命令:
我们可以看到,XSA 文件在虚拟机中也是可见的。
打开另一个终端窗口,并运行以下命令:
将 XSA 文件复制到此目录中,可以使用终端操作,也可以通过图形用户界面完成,然后运行以下命令:
这将会创建一个名为“example”的项目文件夹。进入该项目文件夹,并将一个 xsa 文件复制到其中。
对于我们这个简单的示例而言,系统配置可以保持原样,这样我们就可以直接退出程序,并继续构建一个 petalinux 项目。
首次构建一个 petalinux 项目可能会耗费较长时间,这取决于项目的规模、配置情况、分配给虚拟机的资源等因素(有时甚至会超过 1 小时)。
将以下文件复制到共享文件夹中
将 SD 卡格式化为 FAT32 格式,将上述 3 个文件复制到 SD 卡中。将 SD 卡插入 arty z7 板中并为其通电。
打开任何你想要的串行终端(我使用的是 PuTTY),你应该可以直接看到 Petalinux 正在你的设备上启动。如果成功启动后它会要求你输入登录信息,用户名通常是“petalinux”。
将网线插入您的板卡与电脑/路由器之间。如果您使用的是路由器,您的板卡将会自动获得一个 IP 地址。若要查看该 IP 地址,请使用以下命令:
如果您的网卡与 IP 之间存在直接连接,那么您需要使用以下命令来设置静态 IP 地址:
在 Petalinux 系统配置页面中也可以设置静态 IP 地址,但这一内容不在本教程的涵盖范围内。
在您的电脑上打开命令提示符窗口,然后使用 ping 命令发送到板机的 IP 地址,以确认两台设备之间已建立连接。
在维蒂斯中,创建“Linux 欢迎世界”示例项目。
修改您的 C 代码,因为某些库和函数在 Linux 环境中无法使用。例如,我修改后的示例代码如下所示:
前往“Vitis” -> “目标连接”并创建一个新的 Linux TCF 代理。在保存之前务必先进行“测试连接”,以确保一切运行正常。
相应地修改“Hello World”项目的 launch.json 文件:
在成功完成上述步骤并按下调试按钮后,用户应能够逐行执行并测试代码的功能。
我们还可以直接运行我们的代码,只需执行加载到我们开发板上的“.elf”文件即可,如下面的截图所示。
本文编译自hackster.io





