【FPGA】FPGA程序的固化和下载(sd卡)

创作时间:2019-01-01
zynq的从SD卡的启动
目录:

正文:

1.zynq的从SD卡的启动的过程
zynq启动和大多数ARM一致,分为3阶段:
1)即传统的 BootROM 过程。
ZYNQ 芯片 ROM 里面固化了一段不可修改的程序,只要 ZYNQ 一上电 ,这段程序就会执行。
它将对 ZYNQ 的 NAND 、 NOR 、 SD 等基本外设控制器进行初始化。
把 SD 卡这类易失的存储器件初始化后,就会把其中的程序拷贝到 ZYNQ 的 OCM On chip memory )。
这个被拷贝到片上 RAM 执行的程序就是我们今天要制作的文件 BOOT.bin
2)BOOT.bin 加载到 OCM 上开始执行。
BOOT.bin 由 FSBL.elf+ 该工程 . 该工程 .elf 构成。
该阶段要做的就是:首先配置 PS 部分, PS 完成初始化后,会去配置 PL 部分,最后去加载阶段 3的代码。
3)
这一阶 段是可选的,主要是为了完成 Linux 系统启动过程。本次实验暂时不需要。

2. zynq启动模式位的选择
这里有个疑问,众所周知ZYNQ 具有多种启动方式: NOR, NAND, Quad SPI, SD Card 以及 JTAG 。
ZYNQ 如何判断到底从哪里启动呢?实际上,当上电后, ZYNQ 会根据模式管脚的设定,选用 boot 的方式。

3.BOOT.bin制作过程详解
3.1创建BD工程
增加block design
在这里插入图片描述
添加对应芯片的IP
在这里插入图片描述
配置这个芯片PS端的接口,包括:MIO外部存储接口(FLASH,SD卡),DDR接口,时钟,串口等,和实际的芯片管脚绑定在一起。
比如,串口的配置如下:
在这里插入图片描述
配置完成后,Run Block Automation,搭建好的 BD 工程一下就是配置好的 ZYNQ IP 。

3.2 接下来,我们要把这个IP在我们的顶层文件中调用。

首先,右击
BD 让软件自动创建一个顶层文件
在这里插入图片描述
添加到top文件,把BD部分的ip例化。
生成bit
3.3 导入SDK
生成bit 文件后,需要到硬件,新建 SDK 工程,启动 ZYNQ 7 Processing System IP 。
Step1: File -->Export -->Export Hardware ,导出硬件。
Step2:勾选 Include bitstream 直接单击 OK
Step3:File–>Launch SDK 加载到 SDK 单击 OK

SDK界面如下:
在这里插入图片描述
Step4:导出完成后如下图
在这里插入图片描述
Step5 :选择 File -->New -->Application Project

Step6:工程命名为 HelloWorld ,然后单击 NEXT ,选择 自带的 Helloworld 程序做测试,单击 Finish 。

Step9 选中 helloworld 工程 要做固化的工程 )),然后右单击 选择 Creat Boot Image 。

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

完成后,可以看到在
helloworld 工程 要做固化的工程 的文件夹中出现 bootimage 文件夹,展开后可以看到生成
的 BOOT.bin 文件。这个 BOOT.bin 文件用于 SD 或 QSPI 固化。’
在这里插入图片描述

注意:
放到 SD 卡的 bin 文件,文件名必须是 BOOT.bin ,否则不识别。

SD启动——固化测试
将生成的 BOOT.bin 文件,复制到 SD 卡,再将 SD 卡插到开发板,最后打开电源。则开机 后系统从 SD 卡 启动,程序掉电不消失。


THE END~
说明:
参考《米联客(MSXBO)www.osrc.cn》,仅作为学习笔记。

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/110206068