Petalinux工程设计流程
完整Petalinux工程实践目录前言一、ZYNQ启动流程二、Petalinux常用命令介绍三、搭建Petalinux工程3.1 Vivado 创建硬件平台3.2 创建 petalinux 工程3.2.1 设置 Petalinux 运行环境3.2.2 创建 petalinux 工程3.2.3 petalinux 工程中导入xsa 文件并配置3.2.4 配置 Linux 内核3.2.5 配置 Linux 根文件系统3.2.6 配置设备树文件3.2.7 编译Petalinux工程3.2.8 打包BOOT.BIN四、制作 SD 启动卡五、进入 Linux 系统总结前言本文介绍了一整套Petalinux工程搭建的流程本文使用的Vivado环境为2020.2Ubuntu环境为18.04Petalinux环境为2020.2搭建工程以zynq-7000系列的XC7Z020芯片为例。这里搭建一个ZYNQ嵌入式最小系统从硬件配置到Petalinux系统工程的搭建。从理论到实战逐步分析层层递进一、ZYNQ启动流程在使用Petalinux创建工程前先了解一下ZYNQ启动流程ZYNQ启动有三个阶段Stage 0 (BootROM: BootROM Header)Stage 1 (FSBL / User code)Stage 2 (U-Boot / System / Application)以下为官方文档的介绍为了方便理解这里借用正点原子的流程图来分析Stage 0BootROMBoot是引导ROM是只读内存也就是BootROM中有一段只读的引导代码代码用于SD卡等外设初始化读取引脚配置最后加载镜像到OCMOCM是片上内存这里主要是起一个引导加载的作用引导加载程序FSBL引导代码到OCM中。引导加载过后Stage 0结束开始Stage 1阶段。这里注意在Stage 0阶段不对PL进行任何操作。Stage 1控制权到FSBL时主要先进行PS的初始化再加载PL配置文件也就是bit文件然后加载SSBL或裸机程序这里需要看实际情况是跑操作系统还是跑裸机程序。跑操作系统加载SSBL加载过后会跳转执行SSBL进入Stage 2阶段这时控制权就转交SSBL。跑裸机程序加载裸机程序后就会只执行裸机程序不会进入Stage 2阶段。Stage 2通过SSBL加载操作系统到DDR其中U-Boot是通用引导加载程序U-Boot来负责加载Linux操作系统。二、Petalinux常用命令介绍先来介绍下Petalinux工程设计的命令PetaLinux 工具遵循顺序化的处理流程以下是官方文档的内容这里按表格的顺序也是Petalinux中创建工程的顺序本文举例介绍的Petalinux设计流程如下1. 通过 Vivado 创建硬件平台得到 xsa 文件2. 运行 source 安装路径/settings.sh设置 Petalinux 运行环境3. 通过 petalinux-create -t project 创建 petalinux 工程4. 使用 petalinux-config --get-hw-description将 xsa 文件导入到 petalinux 工程当中并配置 petalinux 工程5. 使用 petalinux-config -c kernel 配置 Linux 内核6. 使用 petalinux-config -c rootfs 配置 Linux 根文件系统7. 配置设备树文件8. 使用 petalinux-build 编译整个工程9. 使用 petalinux-package --boot 制作 BOOT.BIN 启动文件10. 制作 SD 启动卡将 BOOT.BIN 和 image.ub 以及根文件系统部署到 SD 卡中11. 将 SD 卡插入开发板并将开发板启动模式设置为从 SD 卡启动12. 开发板连接串口线并上电启动串口上位机打印启动信息登录进入 Linux 系统。三、搭建Petalinux工程理论部分介绍完下面从Vivado 开始来完整创建一个实际的工程3.1 Vivado 创建硬件平台本文使用的Vivado环境为2020.2搭建工程以zynq-7000系列的XC7Z020芯片为例。这里搭建一个ZYNQ嵌入式最小系统主要用来演示Petalinux系统工程的搭建。打开Vivado创建一个工程点击Next选择好合适的位置来存放工程。点击Next一直点击Next选择对应的芯片型号。点击FinishVivado开始创建工程。这里先搭建bd在Design中点击 号添加IP核这里对于ZYNQ最小系统的配置可以参考之前博客ZYNQ嵌入式最小系统配置ZYNQ7000与ZYNQMP系列_zynq最小系统-CSDN博客这里仅展示部分配置参数配置完成后点击Run Block Automation勾选好选项点击OK验证搭建的Block Design验证成功完成综合综合成功后导出硬件文件。硬件文件导出成功后得到xsa接下来就可以将xsa文件导入到Petalinux里创建系统工程了3.2 创建 petalinux 工程3.2.1 设置 Petalinux 运行环境在正式使用 petalinux 工具之前需要先设置petalinux的作环境输入以下指令source /opt/pkg/petalinux/2020.2/settings.sh运行如图所示3.2.2 创建 petalinux 工程创建一个名为Zynq_7020的Petalinux工程输入以下指令petalinux-create -t project --template zynq -n Zynq_7020-t是“--type”的简写template参数表明创建的petalinux工程使用的平台模板zynq表明使用 的是 zynq平台模板的petalinux工程用于zynq-7000 系列的芯片。而 Zynq UltraScaleMPSoC 系列的芯片就需要变为zynqMP 表明使用的是 zynqMP SoC 平台模板的 petalinux 工程。name参数此处简写为“-n”后接的 是 petalinux工程名运行如图所示在指定文件路径下就创建了一个工程文件3.2.3 petalinux 工程中导入xsa 文件并配置先将硬件文件导入工程文件夹中首次配置 Petalinux工程是将xsa文件导入到Petalinux工程中Petalinux工具会解析xsa文件并弹出配置窗口。输入以下指令petalinux-config --get-hw-description ./hardware/design_1_wrapper.xsa运行如图所示弹出petalinux图形化配置窗口可根据实际工程进行配置完成petalinux工程的配置后会回到终端3.2.4 配置 Linux 内核输入以下指令petalinux-config -c kernel运行如图所示会弹出Linux内核的图形化配置界面根据实际工程配置完成后会回到终端3.2.5 配置 Linux 根文件系统输入以下指令petalinux-config -c rootfs运行如图所示会弹出根文件系统的图形化配置界面根据实际工程配置完成后会回到终端3.2.6 配置设备树文件在工程路径下工程名/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 找到system-user.dtsi 设备树文件进行编辑应对Vivado工程中的PS配置可以添加相匹配的外设code /home/echo/Petalinux/Zynq_7020/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi3.2.7 编译Petalinux工程输入以下指令petalinux-build运行如图所示3.2.8 打包BOOT.BIN输入以下指令petalinux-package --boot --fpga --u-boot --fsbl指令中“petalinux-package --boot”命令生成可引导映像该映像可直接与Zynq系列设备包括Zynq-7000和Zynq UltraScale MPSoC或基于MicroBlaze的FPGA设计一起使用。“--fsbl”用于指定fsbl文件所在位置后面接文件对应的路径信息如果不指定文件位置默认对应的是 images/linux/zynq_fsbl.elf“--fpga”用于指定bitstream文件所在位置后面接该文件对应的路径信息默认对应的是 images/linux/system.bit“--u-boot”用于指定U-Boot文件所在位置后面接该文件所在路径信息默认为 images/linux/u-boot.elf。运行如图所示进入Petalinux工程的images/linux目录下可以看到打包生成的文件四、制作 SD 启动卡这里推荐一个工具可以使用图形化的界面对SD卡进行分区简单的方法实现和指令分区一样的效果。在Ubuntu中安装下图所示软件分区配置参数点击√点击Apply分区完成后点击Close打开文件夹可以发现分区好的BOOT目录和rootfs目录SD卡分区完成后们将该工程image/linux目录下的BOOT.BIN、boot.scr和image.ub文件拷贝到BOOT分区输入以下指令cp BOOT.BIN image.ub boot.scr /media/echo/BOOT/运行结果如图将该工程 image/linux目录下的系统根文件解压到rootfs分区输入以下指令sudo tar -zxvf rootfs.tar.gz -C /media/echo/rootfs/运行结果如图打开BOOT文件夹可以看到打开rootfs文件夹可以看到五、进入 Linux 系统板卡插入SD卡连接好串口打开串口工具这里需注意将板卡的启动模式开关调整为SD卡启动。上电后串口中会有如下打印信息输入用户名root密码也是默认密码root就可以进入板卡的Linux系统中了。总结以上就是今天要讲的内容本文介绍如何搭建一整套Petalinux工程。

相关新闻

网易三面:Code Agent 是怎么改代码的?三代方案演进与四个致命细节

网易三面:Code Agent 是怎么改代码的?三代方案演进与四个致命细节

文章目录 前言 一、模型的"眼睛"和"手"是分开的 二、第一代:全文件重写 三、第二代:Diff / Patch 格式 四、第三代:字符串精确匹配替换 五、字符串替换的四个致命细节 六、工具签名设计 七、从架构师视角看编辑工具的几个工程取舍 八、面试话术:考官想…

2026/7/23 17:58:08 阅读更多 →
Mcal配置PWM SBC芯片SA47301X

Mcal配置PWM SBC芯片SA47301X

现象:烧录完程序,断开debug短接口,重新上电,无法启动,电流只有0.03A,若连接上debug短接口,程序就跑起来了。分析:debug短接口的原理图如下测量:用示波器接入SBC的nRESET管…

2026/7/23 16:55:16 阅读更多 →
AI降重工具测评:2026年降重降AI率工具横向对比,哪个更实用?

AI降重工具测评:2026年降重降AI率工具横向对比,哪个更实用?

用AI辅助写论文,常遇到查重报告里AI疑似度居高不下的情况。这时,一款得力的降重降AI率工具就能帮你解围。 2026年的学术写作环境中,单靠大模型创作内容已不够稳妥。专门针对AIGC特征优化的降重降AI率工具,才能真正压低检测数值。…

2026/7/21 7:37:06 阅读更多 →

最新新闻

尚嘉微压富氧舱以 “家电化“ 思维重塑微高压氧舱家庭康养新体验

尚嘉微压富氧舱以 “家电化“ 思维重塑微高压氧舱家庭康养新体验

对于中高层收入的老板、企业高管、 医生群体 ,以及有改善睡眠、神经性头痛、失眠调理、缓解脑疲劳、失眠、抗疲劳、术后恢复、亚健康调理、脑梗康复需求、应酬后身体修复、用脑过度修复的父母和高压力生活的人群而言 ,如何将专业的健康管理融入日常 ,一直是个难题。嘉兴尚嘉氧疗…

2026/7/23 17:57:22 阅读更多 →
汽车诊断系统总线协议规范知识汇总

汽车诊断系统总线协议规范知识汇总

OBD是什么 OBD是“车载诊断系统”,英文全称是:On-Board Diagnostic。这个系统主要用于实时监测发动机运行状态以及尾气处理系统的工作状态。如果系统有异常数据则代表系统当前工作不正常,OBD会把故障码储存起来,故障灯点亮。而修理人员可以通…

2026/7/23 17:57:22 阅读更多 →
信息管理毕业设计选题与实现指南

信息管理毕业设计选题与实现指南

1. 信息管理毕业设计选题避坑指南每年毕业季,总有一批学生卡在选题环节。作为指导过30毕业设计的过来人,我总结出信息管理类专业最容易上手的5类选题方向。这些题目不仅符合专业要求,而且资料丰富、技术成熟,特别适合想平稳过关的…

2026/7/23 17:57:22 阅读更多 →
2026届AI校招趋势与大模型技术栈解析

2026届AI校招趋势与大模型技术栈解析

1. 2026届AI校招趋势深度解读最近和几位头部大厂的HR朋友吃饭,聊到今年校招最火爆的岗位,AI方向毫无悬念地占据榜首。有个数据很有意思:某大厂算法岗的简历投递量同比暴涨300%,但HC(headcount)只增加了50%。…

2026/7/23 17:57:22 阅读更多 →
安全强化学习:原理、算法与实践应用

安全强化学习:原理、算法与实践应用

1. 安全强化学习概述在自动驾驶汽车即将撞上行人时紧急制动,在工业机械臂即将超出安全范围时自动停止,在医疗机器人进行手术时避免损伤健康组织——这些场景都离不开安全强化学习(Safe Reinforcement Learning)的核心技术。作为传…

2026/7/23 17:57:22 阅读更多 →
TM4C129时钟系统深度解析:从PLL配置到硬件设计实战

TM4C129时钟系统深度解析:从PLL配置到硬件设计实战

1. 项目概述:为什么时钟系统是嵌入式开发的基石 在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器项目里,时钟系统的配置往往是项目启动后第一个需要啃下的硬骨头。很多工程师拿到芯片后,习惯性地复制粘贴官方例程的初始化…

2026/7/23 17:56:22 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻