当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在ZCU104上部署PetaLinux 2024.2,并提供安装、引导和自定义应用程序,用于高级嵌入式系统开发。

在ZCU104上部署PetaLinux 2024.2,并提供安装、引导和自定义应用程序,用于高级嵌入式系统开发。

ZCU104 MPSoC开发平台:PetaLinux 2024.2基本教程是在Zynq UltraScale+ MPSoC (ZCU104)上设置,配置和部署PetaLinux 2024.2的分步指南。本教程涵盖了从在Vivado 2024.2中生成硬件设计、导出硬件文件(.xsa)到使用PetaLinux 2024.2构建自定义嵌入式Linux系统的所有内容。

该项目旨在简化FPGA开发人员和嵌入式工程师使用ZCU104的学习曲线,演示如何在这个强大的平台上启动Linux并开发实际应用程序。

AMD的FPGA工具已经有了很大的发展,比如Vitis Unified IDE的更新和PetaLinux 2024.2的增强。有了这些变化,一个结构化和更新的指南对于帮助开发人员顺利过渡到最新的工具是必不可少的。不像以前的指南专注于Zynq-7000 SoC,这个项目是为Zynq UltraScale+ MPSoC (ZCU104)量身定制的。

本教程专为FPGA设计人员、嵌入式软件开发人员和希望利用ZCU104上的PetaLinux开发自定义嵌入式应用程序的Linux爱好者而设计

搭建环境

1. 安装要求

PetaLinux工具的安装要求如下:

a.最低工作站要求:

•8gb RAM (AMD工具推荐最小内存)

•2 GHz CPU时钟或同等(至少8核)

•100gb空闲硬盘空间

b.支持的操作系统

•完全移除CENTOS以与上游的Yocto对齐。

•Ubuntu桌面/服务器20.04.5 LTS(64位),20.04.6 LTS, 22.04.1 LTS, 22.04.2 LTS, 22.04.3 LTS, 22.04.4 LTS和24.04 LTS

•OpenSuse Leap 15.4- Redhat 9.4

•AlmaLinux 8.7、8.10、9.1和9。

2. 所需的工具

以下是构建petalinux 2024.2所需的工具

•Xilinx Vivado 2024.2

•PetaLinux InstallerRequired Board Support Package BSP

3. Petalinux安装步骤

•打开linux终端

•查询Ubuntu Linux版本:lsb_release -a

图1 Linux版本查询命令

•首先,我们需要使用sudo apt update命令更新Linux

•在更新linux之后,使用命令$sudo mkdir -p /home/username/petalinux_sdkk/创建一个我们想要安装petalinux的文件夹

•现在,使用chmod +x petalinux-v2024.2-11062026-installer.run命令安装petalinux,然后sudo ./petalinux-v2024.2-11062026-installer.run /home/inam/petalinux_sdk

•第一次我们在安装Petalinux时遇到错误,因为安装Petalinux需要一些依赖项,即ncurses-dev, libtool等。我们首先使用命令sudo apt Install -y xterm autoconf libtool texinfo build-essential ncurses-dev安装这些依赖项

•然后我们再次使用上面提到的命令安装Petalinux。

Petalinux工作环境设置

在成功安装Petalinux之后,我们需要设置工作环境。

使用以下命令获取适当的petalinux设置脚本:source ./settings.sh

现在,使用命令echo $PETALINUX验证工作环境已经设置完成。这将输出已安装的Petalinux路径。

创建项目

使用BSP创建项目

•更改我们下载BSP的目录。

•在命令控制台运行petalinux-create命令创建一个新项目,如:petalinux-create -t project -s /home/inam/ bsp /xilinx-zcu104-v2024.2-11110212.bsp

•现在,我们需要转到petalinux工具创建的项目路径。

•在此之后,我们需要配置硬件平台,但为此我们首先需要使用Vivado将硬件平台导出到petalinux项目。

使用Vivado设计套件配置硬件平台

本节介绍如何使用Vivado工具为PetaLinux准备一个硬件平台。

•打开Vivado并加载硬件项目。

•确保正确设置处理系统(PS)配置和外围设备。

•单击“文件→导出→导出硬件”

•在“导出硬件平台”窗口中:

•如果要打包,请选择Include比特流。

•选择所需的输出目录。

•单击OK。

•xsa文件将在选定的目录中生成。

配置硬件项目之后,PetaLinux项目需要一个硬件描述文件(。Xsa文件),包含有关处理系统的信息。

导入硬件配置

进入petalinux项目目录

使用“petalinux-config”命令导入硬件描述,例如:petalinux-config——get-hw-description /home/inam/ vivado_proj /

/home/inam/ vivado_proj /表示您的。但是如果使用Xsa流,这里可能会出现问题。

([错误]这个项目配置了“sdt”,如果你使用相同的项目“xsa”流,你可能会看到问题)

在PetaLinux 2022.1及更高版本中,Xilinx引入了新的系统设备树(System Device Tree, SDT)流,而不是传统的基于xsa的流。

如果您的项目是使用sdt(系统设备树)方法创建的,那么切换到旧的基于xsa的流程可能会导致问题。

在此设置中使用的ZCU104 BSP(板支持包)遵循SDT流程,这可以通过检查项目配置文件来确认:cat project-spec/configs/config | grep DT_FLAVOR。

如果输出结果为:DT_FLAVOR="sdt",则表示该项目使用的是sdt流程。

而PetaLinux中默认的ZynqMP模板遵循XSA流程。

PetaLinux中的SDT流仅支持AMD Zynq™MP, SOM和Zynq 7000 BSPs;MicroBlaze™除外。

与传统的基于xsct的构建流程(通过提供xsa文件作为petalinux-config的输入)相比,由于SDT流中的多配置支持,SDT(系统设备树)项目构建需要更多的时间。状态检查的数量和解析的食谱的数量也更高。

SystemDeviceTreeFlowto构建映像

在继续之前,将硬件开发人员提供的系统设备树文件放在运行PetaLinux构建的用户可以访问的位置。

使用上述步骤生成系统设备树文件:

首先为系统设备树文件创建一个新文件夹或目录。

现在,在SDT Flow中,XSCT仅用于运行SDTGen工具,该工具从XSA文件提取硬件信息并生成系统设备树(System Device Tree, SDT)文件。为此,从已安装的Vitis工具中找到XSCT二进制文件的路径,即(例如:/home/abc/ xilinx /Vitis/ 2021.1 /bin/ XSCT)

•现在,输入这些命令,

•设置输出目录[lindex $argv 1]

•设置xsa [lindex $argv 0]

•执行rm -rf $outdir

•sdtgen set_dt_param -xsa /home/inam/ vivado_proj /design_1_wrapper. exeXsa -dir /home/inam/sdt_out/

•sdtgen generate_sdt

参考上述sdt流命令system-device-tree-xlnx/README。master·Xilinx/system-device-tree-xlnx·GitHub

基于sdt的流的输出文件如下所示

现在,使用petalinux-config命令导入硬件描述:petalinux-config——get-hw-description /home/inam/sdt_out/

这将启动顶部系统配置菜单。

然后转到Image Packaging Configuration,选择EXT4 (SD/eMMC/USB)。

我也没有为我的ZCU104使用TFTPboot(即-根文件系统是从网络位置加载的,而不是像SD卡一样的本地存储),我发现从PetaLinux版本2024.1开始,如果TFTPboot在PetaLinux项目中没有完全配置,那么它将导致项目构建失败。

我们可以在子系统硬件设置下进行以太网设置。

如果您希望ZCU104板从路由器/网络获取IP,请启用“自动获取IP地址”。

如果需要固定IP地址,请关闭DHCP选项,配置静态IP地址、子网掩码和网关。按Y键。

一旦所有所需的配置都已更新,退出硬件系统配置并在提示时保存更改:

运行petalinux命令配置rootfs:

Petalinux-config -c rootfs。

这将弹出车顶系统配置GUI

现在,建议在Filesystem Packages -> misc -> packagegroup-core-buildessential下添加packagegroup-core-buildessential。

packagegroup-core-buildessential包是基本开发工具的集合,例如gcc、make和在目标系统上编译软件所需的其他编译器/实用程序。

在这里,您可以在userpackages下添加用户包示例,就像我添加了basic gpio-demo基本示例一样。

更新了所有所需的配置后,退出根配置并保存更改。

构建系统映像

本节假设我们已经准备好了petaLinux工具软件平台,可以在硬件平台上构建Linux系统。

现在,我们运行petallinux -build来构建系统映像。

此步骤生成设备树DTB文件、第一阶段引导加载程序(适用于Zynq 7000设备、Zynq UltraScale+ MPSoC和MicroBlaze)、PLM(适用于Versal自适应SoC)、PSM(适用于Versal自适应SoC)和TF-A(适用于Zynq UltraScale+ MPSoC和Versal自适应SoC)、U-Boot、Linux内核、根文件系统映像和U-Boot引导脚本(boot.scr)。最后,生成必要的引导映像。

第一次,我们在petalinux构建过程中得到这个错误,因为缺少或无法构建依赖:libvcu-omxil。

此错误仅适用于支持VCU的硬件(例如,ZCU104, ZCU106, ZCU216等)。

我们需要打开project目录,然后进入project-spec/meta-user/conf/petalinuxbsp.conf

Silentconfig

完成这些之后,现在我们需要使用以下命令对petalinux项目进行静默配置

——silentconfig选项允许您重用先前的配置。旧的配置文件名为CONFIG。旧的,在包含指定组件的目录中用于无人值守更新。您可以在不打开系统级配置菜单的情况下更改配置。你可以直接编辑

/project-spec/configs/config文件并执行petalinux-config——silentconfig。

最后,我们再次使用命令petalinux-build构建映像。

现在,我们的Petalinux项目已经成功构建。

Petalinux-Package

PetaLinux -package工具将PetaLinux项目打包成适合部署的格式。

该工具提供了几个工作流,其操作因目标包格式而异。

支持的格式/工作流是boot, bsp, sysroot, wicand prebuilt。

petalinux-package工具使用包类型名称执行,以petalinux-package PACKAGETYPE格式指定特定的工作流

最常见的用例是生成一个BOOT.BIN文件,其中包含:

•第一阶段引导加载程序

•FPGA位流(如适用)

•U-Boot引导装载程序

因此,我们需要使用以下命令来打包petalinux项目:petalinux-package——boot——fsbl. /images/linux/zynqmp_fsbl。Elf——fpga ./images/linux/system. exe位——u-boot

PackageSD卡映像

如果从SD卡引导(而不是直接引导到INITRD/INITRAMFS), PetaLinux有一个工具集,它将为SD卡打包一个映像文件,可以与balenaEtcher等工具一起使用,以刷新SD卡。这可以通过petalinux-package命令的——wic标志来使用。

对于从SD卡引导的ZCU104,在SD卡的引导分区中所需的引导文件是引导二进制文件、Linux内核、设备树blob和引导脚本(用——bootfiles标志指定)。使用命令:petalinux-package——wic——bootfiles "BOOT.BIN image,将根文件系统放置在SD卡的根指定分区上,并带有——rootfs-file标志。乌兰巴托系统。的防晒霜。——root -file ./images/linux/root .tar.gz

PetaLinux将花费几分钟的时间来生成wic映像,通常最终大小略大于6GB,并且需要至少8GB的SD卡。

然后我们只需要使用像balenaEtcher这样的成像工具将图像flash到SD卡上:

这将完全擦除并重新格式化SD卡,所以在用wic文件闪烁之前,请确保SD卡上没有任何导入内容。

SDCard

SD卡有两个分区,一个用于根文件,一个用于引导文件,看起来像,

ZCU-104MPSoC DeviceBoardSettings

Zynq UltraScale+ XCZU7EV MPSoC设备使用多阶段启动过程,如Zynq UltraScale+ MPSoC技术参考的“启动和配置”章节所述。

交换机SW6配置选项设置如下表所示。

FPGA开发板上电,并通过TeraTerm等串行应用程序与之连接。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭