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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值