FPGA之ZYNQ SOC设计---BOOT.bin制作

更多内容,请关注微信公众号“FPGA科技室”
在这里插入图片描述
以前工程都是通过 JTAG 先下载 bit 流文件,再下载 elf 文件,最后点击 Run As 来运行程序。JTAG 的方法是通过 TCL 脚本来初始化 PS,然后用 JTAG 收发信息,用于在线调试。但是这样只要一断电,程序就会丢失,掉电不保存。
本文详细介绍如何制作镜像文件。将镜像文件拷贝到 SD 卡,设置拨码开关,使系统从 SD 启动。那么每次断电重启后,系统都会从 SD 启动。这样将程序做固化,掉电重启后就不会丢失。

**

​1.固化的流程

**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191020232324822.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjc0NzM4NQ==,size_16,color_FFFFFF,t_70在这里插入图片描述
**

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 制作过程

打开工程,双击打开原理图。
在这里插入图片描述
双击 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,否则不识别。

欢迎转发关注!您的关注,就是成长的动力
在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ug585-zynq-7000-trm.pdf是一份关于Zynq-7000系列器件的技术参考手册。Zynq-7000是赛灵思公司开发的一款集成了 ARM Cortex-A9 处理器和可编程逻辑的系统级芯片。这个技术参考手册为用户提供了关于Zynq-7000器件的详细信息,包括架构介绍、功能特性、寄存器描述以及软件和硬件开发指南等内容。 该手册首先介绍了Zynq-7000的整体架构,包括处理器系统和可编程逻辑的组合,以及二者之间的连接方式。然后,手册详细描述了Zynq-7000的各个功能模块,如处理器系统、DMA控制器、片上存储器等。对于每个功能模块,手册给出了其功能描述、寄存器描述以及配置建议。 此外,手册还提供了Zynq-7000的软件开发指南,包括处理器的引导流程、操作系统的支持、软件编程模型以及调试和性能优化等内容。对于硬件开发者来说,手册也提供了关于时钟和电源管理、外设接口、引脚分配以及PCB设计建议等方面的信息。 通过阅读ug585-zynq-7000-trm.pdf,用户可以全面了解Zynq-7000系列器件的特性和功能,从而更好地应用于自己的项目中。这个手册为开发者提供了重要的参考文档,有助于提高开发效率和项目成功率。无论是对于软件开发者还是硬件开发者来说,这个手册都是一份非常有价值的资料。 ### 回答2: ug585-zynq-7000-trm.pdf是关于Zynq-7000系列SoC的技术参考手册。Zynq-7000是由赛灵思公司生产的一种集成了ARM Cortex-A9双核处理器和可编程逻辑的片上系统。该手册提供了关于Zynq-7000 SoC架构和功能的详细信息。 手册中包含了Zynq-7000 SoC的主要特性、系统结构图、时钟和电源管理、芯片级功能描述等内容。其中,主要特性部分介绍了Zynq-7000 SoC的处理器、逻辑、内存和外设等方面的特性,以及支持的操作系统和工具链。系统结构图部分展示了Zynq-7000 SoC的各个模块之间的连接和通信方式,帮助用户理解其系统级架构。 手册中还包含了关于时钟和电源管理的重要信息,介绍了如何配置和管理SoC的时钟和电源供应。此外,技术参考手册还提供了芯片级功能描述,详细介绍了SoC内部各个模块的功能和接口规范。 通过阅读ug585-zynq-7000-trm.pdf,用户可以深入了解Zynq-7000 SoC的内部结构和功能特性,了解如何有效使用和配置该芯片。这对于开发者和设计工程师来说非常有价值,可以帮助他们开发和优化基于Zynq-7000 SoC的应用程序和系统。 总之,ug585-zynq-7000-trm.pdf是一本重要的技术参考手册,对于想要深入了解和使用Zynq-7000 SoC的人群来说是不可或缺的一份文档。 ### 回答3: ug585-zynq-7000-trm.pdf是一份关于Xilinx Zynq-7000系列SoC技术参考手册的PDF文档。Zynq-7000系列SoC是Xilinx公司推出的一款集成了ARM Cortex-A9处理器和可编程逻辑的片上系统,它在嵌入式领域有着广泛的应用。 该手册提供了关于Zynq-7000系列SoC的详细技术规格和功能说明。它包含了SoC的内部结构、时钟和复位控制、外设接口以及可编程逻辑资源的详细信息。此外,手册还介绍了不同的外设模块,包括UART、I2C、SPI等,并提供了使用这些外设的软件编程接口和寄存器配置信息。 除了硬件规格,该手册还详细介绍了Zynq-7000系列SoC的软件开发环境和工具链。它包含了关于使用Xilinx软件开发套件进行软件开发的说明,包括嵌入式处理器的编程模型、操作系统支持和驱动程序开发等内容。 通过阅读这份技术参考手册,用户可以全面了解Zynq-7000系列SoC的内部结构和外设功能,掌握SoC的硬件和软件开发技术,从而更好地进行基于Zynq-7000的嵌入式系统设计和开发工作。无论是从事嵌入式系统开发的工程师,还是对Zynq-7000系列SoC感兴趣的学习者,这份参考手册都是非常有价值的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值