zynq/zynqMP启动模式总结:FLASH+emmc启动/petalinux烧写速度最快的启动方式

news2024/11/19 3:37:16

        因客户要求zynq开发板只有FLASH和emmc,然而还得在petalinux进行开发系统,因FLASH大小有限,所以没办法把内核和根文件地址全部存储到FLASH中,于是想配合emmc进行启动,但是在网上搜索的大多都是只把根文件系统放到了emmc,然后把内核和BOOT.bin放到了FLASH,但是烧写FLASH真的很费时间,所以就想出了一个新的办法(被逼的):   


    

启动文件分配:      

存储区域分区存储文件
FLASH-BOOT【fsbl、u-boot、bit(可选)】
EMMCFAT32image.ub【Image】
Ext4rootfs.tar.gz【解压后的】

这样分配下来,BOOT.bin 的大小只有几M,烧写起来方便很多

接下来直接讲解实现过程:

首先想介绍一下我的环境:

        petalinux2021.2、vivado2021.2、zynq7020、zynqMP 7ev 

一、向EMMC存储文件

首先应该使用ramdisk模式创建一个很小的petalinux系统:(这个需要打包一起放到FLASH启动)

        1、需要把FLASH内存进行分配(添加kernel、bootscr和rootfs分区)

        2、 修改 Root filesystem type 为 (INITRD),并进行地址配置

        3、  修改 Boot script offset的值 (0x3E80000),这个值为boot.scr的基地址

然后直接petalinux-build即可

然后对这些文件进行打包(网上都是一个一个的分地址烧录到FLASH,但是太麻烦):

这边分享一个把上述文件全部打包成一个BOOT.bin

petalinux-package --boot --force --format BIN --fsbl --u-boot --kernel images/linux/Image --offset 0x1E40000 --cpu a53-0 --boot-script --offset 0x3E80000 --add images/linux/rootfs.cpio.gz.u-boot --offset 0x4000000 --cpu a53-0 --file-attribute partition_owner=uboot

    这样只需要把BOOT.bin(大概50Mb)烧写到FLASH即可,时间有点久(去厕所钓会鱼)  

烧写完之后,把启动模式切换到FLASH启动,即可进入系统了,然后如果有网络可以通过网络把image.ub和rootfs.tar.gz 传到系统,参考我以前的文章进行分区和存放即可。

Linux下给emmc进行分区操作总结-CSDN博客

二、配置从EMMC启动

        1、只需修改Root filesystem type 为 (EXT4 (SD/eMMC/SATA/USB)),并修改rootfs存放的mmc位置

      然后进行petalinux-build

      然后进行打包BOOT.bin (只有5Mb)(只需打包fsbl、u-boot、bit(可选))          

petalinux-package --boot --fsbl ./zynq_fsbl.elf --fpga ./system.bit --u-boot ./u-boot.elf --force

这样的BOOT.bin只有5M大小,烧写到FLASH用时很短

然后启动开发板,进入到u-boot界面:(在执行到U-BOOT倒计时的时候按任意键暂停)

在这里修改u-boot启动的指令:

查看当前的启动变量:

print bootcmd

如下所示,在bootcmd的命令中我们使用的默认的distro_bootcmd

查看iamge.ub文件

ls emm 1:1

如下所示,即我把image.ub存放到了emmc1的第一个分区

查看rootfs文件

ls emm 1:2

如下所示,即我把根文件系统放到了emmc1的第二个分区

挂载emmc1

mmc dev 1

修改启动内核环境变量

setenv run_emmc_boot "mmc dev 1:1 && load mmc 1:1 0x10000000 /image.ub && bootm 0x10000000"

将bootcmd的命令修改成run_emmc_boot

setenv bootcmd "run run_emmc_boot" 

保存环境变量

saveenv

 重启开发板即可查看到,从emmc中读取iamge.ub

然后就是进行读取根文件系统,直至进入到petalinux系统

 大功告成!!!(开香槟!!

更多关于zynq和zynqMP的问题,可以评论留言

如果感觉文章对您有用,麻烦三连支持一下,方便下次用到的时候,就可以快速找到我,非常感谢您的支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1715990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

制造企业如何通过PLM系统实现BOM管理的飞跃

摘要 在当今快速变化的制造行业中,产品生命周期管理(PLM)系统的应用已成为企业提升效率、降低成本和增强竞争力的关键。本文将探讨PLM系统如何通过其先进的BOM(物料清单)管理功能,帮助制造企业在整个产品生…

100T微机控制电液伺服卧式拉力试验机

一、产品概述 微机控制卧式拉力试验机适用于额定试验力下的拉伸试验及恒负荷拉伸,可用于钢丝绳、锚链、钩环、电瓷瓶、电缆、光缆、钢铰线、棒材、绳类等制品或材料的拉伸强度测试。 二、性能特点 本机采用计算机控制,具有力、位移自动跟踪测量加荷速…

视频监控业务平台LntonCVS国标GB28181视频平台智慧城市应用方案

随着科技的不断进步,尤其是人工智能技术的飞速发展,视频应用已经超越了传统的视频监控、视频会议、视频通话和视频指挥调度等基本功能。它们正在向更加多元化、灵活化、融合化和智能化的方向发展。因此,建立一个视频AI中台变得至关重要。 通过…

RTPS协议之Messages Module

目录 Messages ModuleType定义RTPS消息结构RTPS消息头子消息结构 RTPS消息接收者SubmessageElementsRTPS HeaderRTPS Submessages Messages Module RTPS Writer和RTPS Reader之间的交换数据的消息。 Type定义 TypePurposeProtocolId_tSubmessageFlagsub msg flagSubmessageK…

【YashanDB知识库】OCI驱动类问题定位方法

【标题】OCI驱动类问题定位方法 【需求分类】故障分析 【关键字】OCI 【需求描述】由于我们的OCI接口目前尚不完善,经常会遇见OCI接口能力不足导致应用功能无法运行的问题,需要定位手段确定底层是哪个接口报错 【需求原因分析】方便一线数据库管理员…

揭秘智慧校园:可视化技术引领教育新篇章

随着科技的飞速发展,我们的生活方式正在经历一场前所未有的变革。而在这场变革中,学校作为培养未来人才的重要基地,也在不断地探索与创新。 一、什么是校园可视化? 校园可视化,就是通过先进的信息技术,将学…

Nocobase快速上手 - 常见block的使用

在上一篇文章 Nocobase快速上手 -第一个collection 中,我们新建了一个collection ,并且通过在页面中配置block实现了数据的展示,本文继续探索block的使用。 Block类型 Block(区块)的整体架构如下图: 我们可以看到,block分为三个大类&#…

【C++】二维前缀和

1.题目 2.算法思路 和一维前缀和的方法类似&#xff0c;我们需要预处理一个求和矩阵&#xff0c;然后再求和。 下面是模板&#xff1a; 上面两张图片总结出来了两个公式&#xff0c;这是解决此类问题的关键。 3.代码 #include <iostream> using namespace std; #incl…

Java Apache Jexl规则引擎初体验

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、模板引擎的选择&#xff1f;二、什么是JEXL规则引擎&#xff1f;优点缺点 三、其他规则引擎四、示例1.引入依赖2.方法示例3、代码解释4、效果![import java…

ssm校园疫情防控管理系统-计算机毕业设计源码30796

目 录 摘要 1 绪论 1.1目的及意义 1.2开发现状 1.3ssm框架介绍 1.3论文结构与章节安排 2 校园疫情防控管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分…

Linux终端连接工具

终端连接工具有很多中&#xff0c;这里我只收集了一些常用的或免费的工具 我一般会配套使用&#xff1a; FinalShell -->命令行工具&#xff08;Mac和win&#xff09; WinSCP -->文件上传工具&#xff08;win&#xff09; filezilla -->文件上传工具&#xff08;Mac …

【408真题】2009-25

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

Jetpack架构组件_5.BindingAdapter

1.BindingAdapter介绍 Binding adapters 可以作为一个设置某个值的框架来使用&#xff0c;databinding 库可以允许指定具体的方法来进行相关值的设置&#xff0c;在该方法中可以做一些处理逻辑&#xff0c;Binding adapters 会最终给你想要的结果。Android Databinding框架中已…

企业如何打造通证经济生态闭环详解(下)

一、原始账户&#xff1a;用户注册即生成【原始账户】【托管账户】。 原始账户用于存储用户所获取的通证积分&#xff0c;原始账户的公钥与私钥由用户所有&#xff0c;安全、私密、去中心化。 通过原始账户&#xff0c;用户可进行转账、收款的点对点传输&#xff0c;并可查看…

Activity详解,用最通俗的语言告诉你什么是Activity(一)

大家好&#xff0c;我是小布丁。 今天还是分享Android基础知识&#xff0c;有Android基础的朋友都知道&#xff0c;Activity作为Android四大组件之一&#xff0c;掌管可视化界面。也是大多数人刚接触Android学的第一课。下面我来带大家学习/复习这部分知识&#xff0c;请大家不…

Docker教程——Docker安装

安装 在安装Docker之前&#xff0c;我们需要执行如下代码安装Docker的一些依赖包&#xff0c; sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo依赖包安装好后&#xff0c;执行如下代码安装Dock…

Three.js是基于原生WebGL封装的三维引擎

Three.js: 基于原生WebGL封装的三维引擎 引言 随着互联网技术的发展&#xff0c;Web前端技术不断进步&#xff0c;用户对于网页交互体验的要求也越来越高。艾斯视觉前端开发&#xff1a;三维技术作为提升用户体验的重要手段之一&#xff0c;正在逐渐成为前端开发中的热门技术…

aws 在ecs外部实例上运行gpu负载

参考资料 https://docs.amazonaws.cn/zh_cn/AmazonECS/latest/developerguide/ecs-gpu.htmlhttps://docs.amazonaws.cn/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#gpu-instanceshttps://docs.amazonaws.cn/AWSEC2/latest/UserGuide/install-nvidia-drive…

pytorch学习day1

一.pytorch主要模块介绍 1.1 模块介绍 模块描述torch包含激活函数和主要的张量操作torch.Tensor定义了张量的数据类型&#xff0c;方法可返回新张量&#xff0c;方法后缀带下划线可修改张量本身torch.cuda定义了 CUDA 运算相关的函数&#xff0c;如检查 CUDA 是否可用&#x…

FL Studio21.2.5中文版电子音乐制作的强大工具

在当今的数字音乐时代&#xff0c;电子音乐已经成为了全球音乐市场中不可或缺的一部分。越来越多的音乐爱好者开始尝试自己动手创作电子音乐&#xff0c;而FL Studio 21中文版正是为他们量身打造的一款强大工具。作为一个音频制作爱好者&#xff0c;我深知一个好的数字音频工作…