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

    文章

    530

    浏览量

    63009
  • JTAG
    +关注

    关注

    6

    文章

    383

    浏览量

    71150
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1657

    浏览量

    87932

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

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

收藏 人收藏

    评论

    相关推荐

    STM32MP157烧录Yocto下载完的镜像文件时发生错误的原因?

    当下载完Yocto基本镜像文件后打算烧录到系统里,却发生了这个错误,使用的.tsv文件是 FlashLayout_emmc_stm32mp157d-ev1-optee.tsv 错误是说 Error
    发表于 03-29 09:02

    如何使用Yocto更新已更改的TF-A设备树来产生新的镜像文件

    求助大佬, 我用Yocto构建了STM32MP157的镜像文件,但我需要更改和移植TF-A和U-BOOT来适配我的板子, 我按照它正点原子教程里更改了.bl2和创建了新的.dtsi设备树文件,但
    发表于 03-29 08:01

    【LicheeRV-Nano开发套件试用连载体验】 + 2、镜像烧录

    /releases 1、下载官方制作好的镜像文件到ubuntu中; 2、PC插入TF卡; 3、输入命令烧录:lz4 -d licheervnano-20240206-0802.img.lz4 | sudo
    发表于 03-08 09:50

    佩特科技PET_A40I_P02安卓屏产品简介

    开发过程中,一般使用 PhoenixSuit进行镜像文件的烧写。
    的头像 发表于 12-21 10:34 340次阅读
    佩特科技PET_A40I_P02安卓屏产品简介

    怎么下载centos镜像文件

    CentOS 是一个基于 Linux 的操作系统,它是一种稳定、强大且易于使用的发行版。CentOS 镜像文件是用于安装和部署 CentOS 操作系统的文件。在本文中,我们将详细介绍如何下载
    的头像 发表于 11-23 10:48 502次阅读

    linux镜像制作工具

    Linux镜像制作工具是一类非常重要的工具,可以用于创建定制的Linux操作系统镜像。这些工具可以帮助开发人员、系统管理员和Linux爱好者创建个性化的Linux发行版、定制化的嵌入式操作系统以及
    的头像 发表于 11-23 09:56 811次阅读

    安全引导的作用和原理是什么

    安全引导可用于保证系统的完整性,防止系统中重要镜像文件被破坏或替换。 一般情况下,安全引导需要保护 • 系统的BootLoader镜像文件、 • TEE镜像文件、 • Linux内核镜像文件
    的头像 发表于 11-07 15:21 610次阅读

    MCUXpresso IDE下生成镜像文件的方法及其与IAR,MDK差异

    MCUXpresso IDE下生成镜像文件的方法及其与IAR,MDK差异
    的头像 发表于 09-28 17:05 573次阅读
    MCUXpresso IDE下生成<b class='flag-5'>镜像文件</b>的方法及其与IAR,MDK差异

    瑞芯微RK3399Pro的电路板,电脑能识别为MASKROM设备,镜像文件烧录提示“Download Boot Failed”,请问各位是怎么回事?

    我用瑞芯微RK3399Pro设计了块电路板,电脑能识别为MASKROM设备,镜像文件烧录时提示“Download Boot Failed”,试过很多办法还是不行,烧录过程的日志截图和烧录软件界面如图,请问各位大佬有没有遇到过类似的情况,是什么原因,先谢谢了。
    发表于 08-22 19:51

    如何在RDKx3部署docker镜像

    没有找到x3对应tros的docker镜像,于是尝试自己做个。下面分享下我的制作过程。 首先想到的是pull个ubuntu20.04的
    发表于 08-02 11:02

    MCU双镜像机制的工作原理和应用实例

    嵌入式设备升级过程中会由于断电、强行中断等外部因素,导致新固件写入Flash时不能完整写入,使系统启动时出现问题。或设备运行中,镜像文件被意外损坏,导致系统瘫痪,设备无法运行。面对以上问题,可以
    的头像 发表于 08-01 18:10 886次阅读
    MCU双<b class='flag-5'>镜像</b>机制的工作原理和应用实例

    【Milk-V Duo 开发板免费体验】编译源码并生成镜像文件

    1、介绍按照官方github上的说明可以步搭建源码编译环境并编译生成镜像文件。源码github网址:https://github.com/milkv-duo/duo-buildroot-sdk
    发表于 07-30 07:50

    USB/UART/SPI/I2C-ISP模式更新镜像文件

    应用背景 LPC55(S)XX和即将发布的MCX系列产品支持在ISP模式下载更新镜像文件(ELF, HEX, BIN or SREC/S19),包括USB,UART,SPI,I2C四种连接方式。之前
    的头像 发表于 07-27 08:55 669次阅读
    USB/UART/SPI/I2C-ISP模式更新<b class='flag-5'>镜像文件</b>

    LPC5536: 双镜像机制使用指南

    一. 背 景 嵌入式设备升级过程中会由于断电、强行中断等外部因素,导致新固件写入Flash时不能完整写入,使系统启动时出现问题。或设备运行中,镜像文件被意外损坏,导致系统瘫痪,设备无法运行。面对以上
    的头像 发表于 07-06 08:50 451次阅读
    LPC5536: 双<b class='flag-5'>镜像</b>机制使用指南

    Linux内核常用的几种镜像文件

    简述几种常用的内核镜像文件:vmlinux、Image、zImage、bzImage、uImage、bootpImage、XIPImage等等。
    发表于 06-23 11:49 8585次阅读
    Linux内核常用的几种<b class='flag-5'>镜像文件</b>