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/10/26 22:19:01 阅读更多 →
Mcal配置PWM SBC芯片SA47301X

Mcal配置PWM SBC芯片SA47301X

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

2026/10/26 22:19:02 阅读更多 →
AI降重工具测评:2026年降重降AI率工具横向对比,哪个更实用?

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

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

2026/10/24 23:03:42 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →