0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文教大家如何制作镜像文件

麻辣软硬件 来源:CSDN技术社区 作者:科研的小萌娃 2021-08-09 16:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以前工程都是通过 JTAG 先下载 bit 流文件,再下载 elf 文件,最后点击 Run As 来运行程序。JTAG 的方法是通过 TCL 脚本来初始化 PS,然后用 JTAG 收发信息,用于在线调试。但是这样只要一断电,程序就会丢失,掉电不保存。

本文详细介绍如何制作镜像文件。将镜像文件拷贝到 SD 卡,设置拨码开关,使系统从 SD 启动。那么每次断电重启后,系统都会从 SD 启动。这样将程序做固化,掉电重启后就不会丢失。

1.固化的流程

2221d5fc-f872-11eb-9bcf-12bb97331649.png

2. 固化准备

首先,想到的两个文件就是 PL 部分需要的 bit 文件,以及 PS 需要的 elf 文件。但是仅有这两个文件不够的。我们还需要一段代码把 bit 文件以及 elf 文件安置好。这段代码FSBL.elf。

因此要制作一个镜像文件需要三个文件:

1、FSBL.elf 2、.bit 3、.elf。

最后得到一个等式就是:BOOT.bin = FSBL.elf+该工程.bit+该工程.elf。

(我们利用SDK生成FSBL.elf 文件)

2. zynq 的从 SD 卡的启动的过程

zynq 和大多数 arm 启动过程一样,启动过程也分为 3 个阶段,这三个阶段分别称之为阶段 0、阶段 1 和阶段 2。

阶段 0:即传统的 BootROM 过程。zynq 芯片 rom 里面固化了一段不可修改的程序,只要 zynq 一上电,这段程序就会执行。它将对 zynq 的 NAND、NOR、SD 等基本外设控制器进行初始化。把 SD 卡这类易失的存储器件初始化后,就会把其中的程序拷贝到 zynq 的 OCM(On-chip memory)。这个被拷贝到片上 RAM 执行的程序就是我们制作的文件——BOOT.bin。

阶段 1:BOOT.bin 加载到 OCM 上开始执行。BOOT.bin 由 FSBL.elf+该工程.bit+该工程.elf 构成。阶段 1 要做的就是:首先配置 PS 部分,PS 完成初始化后,会去配置 PL 部分,最后去加载阶段 2 的代码。

阶段 2:这一阶段是可选的,主要是为了完成 Linux 系统启动过程。

2. BOOT.bin 制作过程

打开工程,双击打开原理图。

222c197c-f872-11eb-9bcf-12bb97331649.png

双击 ZYNQ Processing System,对其进行配置:

选择 MIO Configuration 选项,然后如下图所示配置:

MIO ConfigurationàMemory Interfaces 配置:

1、 勾选 Quad SPI Flsh

2、 勾选 Feedback Clk

MIO ConfigurationàI/O Peripherals 配置:

1、 勾选 SD 0

2、 勾选 CD,并设置 MIO 47

3、 勾选 WP,并设置 MIO 46

Clock ConfigurationàIO Peripheral Clocks 配置:

QSPI 时钟设置为 125

点击 OK 完成配置。

右击 system.bd, 单击 Generate Output Products。

右击 system.bd 选择 Create HDL Wrapper 这步的作用是产生顶层的 HDL 文件

选择 Leave Let Vivado manager wrapper and auto-update 然后单击 OK

生成 Bit 文件。

导出到硬件。

启动 SDK

新建一个应用工程

填写工程名 FSBL,点击 Next

工程类型选择 Zynq FSBL。

按快捷键 Ctrl+B 编译一下工程。

选中其中一个工程(记住是哪一个工程,等会儿好找 Boot.bin),然后右单击,选择 Creat Boot Image。

在新窗口中,一共出现三个文件,分别是 FSBL.elf、.bit、.elf 文件,如图所示。制作镜像文件需要这三个文件。直接单击 Create Image 即可完成 Boot.bin 的创建,此文件可作为 SD 卡启动文件和 SPI 启动文件。

在之前设定的文件夹下找到 BOOT.bin 文件,并且将其拷到 SD 卡中,再将 SD 卡插到开发板,最后打开电源。开机后系统从 SD 卡启动,程序掉电不消失。

最后提醒下放大 SD 卡的 bin 文件,文件名必须是 BOOT.bin,否则不识别。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SD卡
    +关注

    关注

    2

    文章

    583

    浏览量

    67779
  • JTAG
    +关注

    关注

    6

    文章

    411

    浏览量

    74607
  • TCL
    TCL
    +关注

    关注

    11

    文章

    1794

    浏览量

    91057

原文标题:ZYNQ SOC设计---BOOT.bin制作

文章出处:【微信号:VOSDeveloper,微信公众号:麻辣软硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    别再装系统了!Linux 镜像到底是什么?篇讲到你怀疑人生

    多小、环境多复杂,如何快速安装、部署和维护 Linux 系统,都是开发者和运维人员必须掌握的核心技能。 这时,“Linux 镜像文件”就显得尤为重要。它就像份完整的系统快照,让你可以在不同设备之间快速迁移、复制,甚至批量部署。理解镜像
    的头像 发表于 12-03 16:12 383次阅读
    别再装系统了!Linux <b class='flag-5'>镜像</b>到底是什么?<b class='flag-5'>一</b>篇讲到你怀疑人生

    ElfBoard技术贴|如何在ELF 2开发板中适配 AX200NGW WiFi模块

    ,指导屏幕前的小伙伴完成这适配过程。方法:重新制作镜像文件该方法是在SDK源码中,将内核编译生成的模块文件部署到
    的头像 发表于 06-24 09:09 1973次阅读
    ElfBoard技术贴|如何在ELF 2开发板中适配 AX200NGW WiFi模块

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4
    的头像 发表于 06-10 12:03 562次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件</b>系统被格式化为Ext4<b class='flag-5'>文件</b>系统的数据恢复案例

    Linux文件系统打包及镜像制作,触觉智能RK3562开发板演示

    本文介绍Linux开发板文件系统打包及镜像制作的方法,演示Linux文件系统打包及镜像制作,适用
    的头像 发表于 04-28 16:45 764次阅读
    Linux<b class='flag-5'>文件</b>系统打包及<b class='flag-5'>镜像</b><b class='flag-5'>制作</b>,触觉智能RK3562开发板演示

    全志T113-i键升级攻略:轻松搞定镜像更新!

    前言:本篇将详细介绍如何对Talowe-EVM-T113-i开发板的系统镜像进行升级,以确保用户在需要时能够快速高效地完成升级目标。文章内容涵盖镜像文件的获取、升级工具的使用步骤、以及常见问题
    的头像 发表于 04-18 08:33 1436次阅读
    全志T113-i<b class='flag-5'>一</b>键升级攻略:轻松搞定<b class='flag-5'>镜像</b>更新!

    rootfs镜像制作其实没那么难

    镜像文件之外,通常还会提供文件系统压缩包。镜像文件可以直接用于烧写到目标板,而文件系统压缩包则可以进行部分修改,修改后重新制作
    的头像 发表于 04-03 11:37 893次阅读
    rootfs<b class='flag-5'>镜像</b><b class='flag-5'>制作</b>其实没那么难

    树莓派镜像制作、烧录及运行

    你是否想过自己动手打造个专属的操作系统镜像?无论是为极客项目定制开发环境,还是让老旧设备焕发新生,系统镜像定制都是极客玩家的必备技能。
    的头像 发表于 03-27 16:00 2115次阅读

    从零开始驯服Linux():ZYNQ-Linux启动文件构建全解析

    ,这里主要是为了方便大家直接烧录出厂程序到TF卡中启动开发板,烧录镜像的步骤可以参考《领航者ZYNQ开发板用户快速体验》文档。相比于我们刚刚制作的这些启动文件
    发表于 03-20 16:48

    DLP LightCrafter 3010 EVM-G2 Firmware中的img镜像文件无法解压怎么解决?

    请教TI工程师,我在TI官网上下载了TI提供的固件DLP LightCrafter 3010 EVM-G2 Firmware,在解压镜像文件dpp343x_7.3.3.img出现了无法解压的问题,尝试重新下载了多次,依然无法解压,具体如下图所示:
    发表于 02-26 08:00

    【贝启科技BQ3568HM开源鸿蒙开发板深度试用报告】之编译系统与烧录镜像

    修改下镜像文件所在的位置。 按住开发板上的“recovery”按键,给开发板上电,等待状态栏出现提示“发现个loader设备”。 点击“执行”按钮,开始将镜像烧录到开发板中。 知道
    发表于 02-02 23:55

    Milk-V Duo 开发板免费体验 官方镜像烧录

    /getting-started 需要到官网查看教程可跳转到此链接。 首先 进入到官网 选择启动duo,便能得到要求: 第、需要自己准备的器材 第二、需要下载的镜像文件和烧录软件。 那么,需要准备的当然是张tf卡和
    的头像 发表于 01-20 17:50 819次阅读
    Milk-V Duo 开发板免费体验 官方<b class='flag-5'>镜像</b>烧录

    Docker-镜像的分层-busybox镜像制作

    容器修改了基础镜像的内容,比如 /etc 下的文件,这时其他容器的 /etc 是否也会被修改? 可写层的概念: Cpoy-on-Write 知识点6:制作个busybox
    的头像 发表于 01-15 10:44 1006次阅读
    Docker-<b class='flag-5'>镜像</b>的分层-busybox<b class='flag-5'>镜像</b><b class='flag-5'>制作</b>

    华为云 X 实例的镜像管理详解

    部署和迁移业务的重要工具。本文将深入探讨华为云 X 实例的镜像管理,介绍镜像的类型、创建与使用、以及如何进行最佳实践管理。 1. 什么是云服务器镜像 云服务器镜像是包含操作系统、软件和
    的头像 发表于 01-07 17:01 1489次阅读
    华为云 X 实例的<b class='flag-5'>镜像</b>管理详解

    Dockerfile镜像制作与Docker-Compose容器编排

    Dockerfile镜像制作 docker/podman中, 镜像是容器的基础,每次执行docker run的时候都会指定哪个基本镜像作为容器运行的基础。我们之前的docker的操作都
    的头像 发表于 01-07 11:01 1143次阅读
    Dockerfile<b class='flag-5'>镜像</b><b class='flag-5'>制作</b>与Docker-Compose容器编排

    迅为RK3568开发板EMMC镜像导出打包update.img

    在上个小节中已经将 EMMC 中的全部分区镜像进行了导出,而为了方便期间和统烧写,我们般都需要将这些镜像文件打包成
    发表于 12-25 14:57