服务热线

400-533-8546
网站导航
技术文章
当前位置: BOB半岛·体育(中国)官方网站 > 技术文章

技术文章:PetaLinux 第一部分 - 简介

时间:2024-09-03 04:56:52 点击次数:

  此博客面向想要开始使用 PetaLinux、了解其关键工具、概念和功能的任何人。在第一篇博客文章中,我们将介绍如何针对 ZCU102 开发板创建PetaLinux 工程,以及如何修改镜像。

  我会完成本教程中所需的基本步骤,但博客的范围有限。您可以在赛灵思网站找到有关 PetaLinux 的更多信息。

  简单说来,它是一组简化的命令,可用于快速轻松地为赛灵思开发板制作定制的 Linux 系统/镜像!

  PetaLinux 设计流程如下所示。本教程主要讲解图中所示的 1-4 部分内容。我假设您已在系统上安装并设置了 PetaLinux 工具,但如果还没有安装和设置,则可以进行 Xilinx WiKi 寻找和下载“入门指南”。

  在此博客中,我就不对通常在 SDK 中完成的“软件设置和启动程序”部分做详细介绍了。在运行此博客提供的 Tcl 脚本时,该部分会自动完成。

  本节主要介绍使用 Vivado 2018.3 为电路板创建定制硬件时需遵循的步骤。从 Vivado,我们将输出硬件描述文件 (HDF)。

  为了为电路板构建目标 PetaLinux 工程,PetaLinux 工具需要了解电路板上的底层硬件系统。HDF 文件对电路板的硬件架构进行了描述。如果要构建 PetaLinux 工程,则必须执行此操作,以便生成的镜像可以在打开电源启动时正确地配置电路板。

  为了加快设计进程,本博客附带了一个 Tcl 脚本。在 Vivado 中运行时,Tcl 脚本将执行以下操作:

  下载此博客附带的 Tcl 脚本。该脚本提供有用于在 Vivado 2018.3 中创建和构建硬件的指令列表。

  使用 GUI 底部 Tcl 提示符中的 cd 命令将目录变更为保存 Tcl 脚本的目录:

  该原理图展示了我们的 Zynq UltraScale+ 电路板上的底层架构:

  另外,如果您不想使用 Tcl 脚本并且对 Vivado 很熟悉,则可以参考上面的原理图手动创建设计。如果要使用早于 2018.3 的 Vivado 版本,则必须手动创建原理图。

  在此步骤中,我们将使用上一步中创建的 HDF 文件来创建基本的 PetaLinux 工程。

  BSP 包含一些预先构建的文件,可用来加快开发过程。它只能与标准的赛灵思开发板一起使用,因为它包含对电路板底层架构进行描述的 HDF文件。

  因为它包含 HDF 文件,所以,如果使用此方法,即可跳过上面提到的步骤 1。总的来说,它包含以下内容:

  在本教程中,我们将使用 ZynqMP 的模板工程来创建 PetaLinux 工程。如果您有定制的赛灵思电路板,则必须使用模板工程,但也可以与标准的赛灵思开发板一起使用。BSP 不能与定制电路板一起使用,因为它包含仅描述标准赛灵思开发板架构的 HDF。

  接下来,您可以将刚创建的模板与步骤 1 中在 Vivado 中创建的硬件信息组合在一起。

  从 Vivado 导出的 HDF 文件中有一个硬件描述文件 (HDF)。PetaLinux 通过 HSI 实用程序从该文件中提取有关硬件的信息,以及诸如 devicetree生成器等其他工具中使用的 IP、网络端口和接口等信息。它还将用来填充有关硬件系统的一些系统级工程信息。

  系统配置窗口随即会出现。这是用户可以对 PetaLinux 工程进行系统级更改的地方。

  也可以使用 petalinux-config 命令打开此配置。由于不需要更改系统级别,您可以退出窗口然后保存。

  在此步骤中,我们将尝试修改上一步中由 PetaLinux 工具创建的标准 PetaLinux 工程。

  PetaLinux 使用配方 (recipe) 来执行任务。例如,如果您想生成一个 devicetree,通常需要完成一系列不同的步骤(下载源代码、导入 HDF 文件......等)。这些步骤可以组合在一起,并作为 PetaLinux 中的单个‘devicetree’配方来运行。

  这些配方是通过 Bitbake 构建的。它会检查各个配方是否相互依赖或依赖于其他任务、是否能恰当地分配构建任务。用户可以通过 conf 文件夹中f 文件将信息传递给 Bitbake。

  许多标准配方用于在 PetaLinux 中创建镜像。但是,如果要自定义镜像,则无法直接修改配方或 PetaLinux 构建目录。

  这是因为,由于工具流程,在每次重建工程时都会覆盖配方和目录,因此任何更改都会丢失。相反,您必须创建一个叫作‘recipe append’的东西。这只是一个文件(内含对标准配方的所有修改请求)。系统会在构建时检查‘recipe appends’并用它们来修改镜像,如下图所示:

  现在您已经了解了背景信息,那我们来尝试修改我们的镜像的一部分,Bootloader (FSBL) 的第一阶段。

  注意:meta-user 层是所有用户特定更改的占位符。您可以在此层中添加自己的 bbappend 和配置文件。

  注意:包含原始 fsbl_%.bbappend 文件的 meta-plnx-generated 的层包含所有组件的所有 bbappend 和配置片段 (cgf)。该层中的所有文件均由基于 HDF 和用户配置生成的工具。由于每次构建时都会覆盖此文件夹中的所有文件,因此我们无法直接对此图层进行任何更改。这就是我们将 meta-user 文件移动到 meta-user 层的原因。

  5.创建 FSBL 时,bbappend 文件中的内容将被用来修改构建目录中的 FSBL 配方。要创建 FSBL 并应用修改,可以使用以下命令:

  将对 tmp 文件夹中的文件进行更改。这是您的“Build Directory”。要查找 tmp 文件夹的位置,请打开配置窗口:

  退出设置。您需要在 TMPDIR 中搜索名为 xfsbl_hooks.c 的文件,bob半岛在线登录然后打开这个文件:

  如果您看到那个 print 语句,那么干得漂亮,您已经成功地为 FSBL 创建了一个追加配方!

  注意:如果要对 FSBL 进行进一步更改,建议您首先使用以下命令清除构建目录中现有的 FSBL (如果有的线 及更早的版本才需要先使用 rm 命令删除 plnx_workspace 目录。

Copyright © BOB半岛·体育(中国)官方网站 版权所有  

地址:广东省广州市BOB半岛·体育(中国)官方网站 电话:400-533-8546 邮箱:derfloor.com

关注我们