ZYNQ学习笔记(五):vivado工程(PL+PS)程序固化到SD卡(redpitaya板同黑金开发板)


前言

ZYNQ学习笔记(三):PL与PS数据交互—— UART串口+AXI GPIO控制DDS IP核输出实验我们成功的实现了利用GPIO来控制DDS IP核的输出,今天我们尝试来把它在板子上固化一下。

一、实验任务

在“UART串口+AXI GPIO控制DDS IP核输出实验”的基础上,创建 FSBL实现程序上电自从SD 卡启动。

二、基本原理

在 ZYNQ SoC 的启动和配置过程中,既需要 PS 的配置信息,又需要 PL 的配置信息。为了简化配置 PS和 PL 的处理过程,ZYNQ 的配置顺序与 Xilinx FPGA 的配置顺序有所不同。差异来源于以下两种类型的文件:
1、 FPGA BIT 文件——定义 PL 的行为
2、 软件 ELF 文件——运行在 PS 中的程序

在 ZYNQ 中,PS 作为主器件,PL 可以看作是 PS 的一个外设,因此需要由 PS 来配置 PL。这个配置顺序的优势是它允许对 PS 单独上电时,此时 PL 不上电,以减小功耗。例外是我们在使用JTAG 下载程序时,此时是使用电脑作为主机来配置 PL。软件代码和配置 FPGA 的 BIT 文件可以存储在连接到 PS 端的配置存储器件中,PS 支持多种片外非易失性存储器(Quad SPI Flash,NAND Flash,NOR Flash 或 SD 卡)。我们常用的是从硬件上支持 SD卡和 QSPI 作为配置器件。
ZYNQ SoC 的启动由片上的 BootROM 开始。片上 BootROM 是 ZYNQ 芯片上的一块非易失性存储器,它包含了 ZYNQ 所支持的配置器件的驱动,BootROM 执行之后,下一个配置阶段被称为 FSBL,它是由设计者所创建的。FSBL 可以配置 DDR 存储器和硬件设计过程中所定义的一些外设。PL 的配置是通过处理器配置访问接口(Processor Configuration Access Port,PCAP)进行的,它允许对PL 进行部分配置或者完全配置。
总结一下 FSBL 的工作内容:
1、 初始化 PS;
2、 如果提供了 BIT 文件,则配置 PL;
3、 加载裸机应用程序到 DDR 中,或者加载 Second-Stage Boot Loader(SSBL);
4、 开始执行裸机应用程序,或者 SSBL

三、硬件设计

双击 ZYNQ Processing System 模块修改其配置,使能SD 控制器外设,并分别设置 Bank0 和 Bank1 (黑金是1.8V)的电平标准。MIO 引脚可以通过查看核心板原理图得知,正点原子是10,黑金是47~

设置完成后点击“OK”。然后按F6验证设计。验证完成后弹出对话框提示“Validation Successful”表明设计无误,点击“OK”确认。最后按快捷键“Ctrl + S”保存设计。接下来“Generate Output Products”。最后点击“Generate Bitstream”,对设计进行综合、实现、并生成 Bitstream 文件。
在生成 Bitstream 之后,在菜单栏中选择 File > Export > Export hardware 重新导出硬件,并在弹出的对话框中,勾选“Include bitstream”。导出硬件会弹出一个对话框,提示我们是否覆盖之前导出的硬件设计文件,在对话框中点击“Yes”,确认导出硬件并覆盖之前的文件。

四、软件设计

在 BSP 工程上右击,然后在菜单中选择“Board Support Package Settings”,如下图所示:

勾选xilffs,以使用 FAT 文件系统。
BSP 设置完成后我们就可以生成一个 FSBL 用来加载应用程序并配置 PL,在菜单栏中选择“File->New->Application Project”。
然后在弹出的新建工程界面中设置工程名,并选择工程中的 BSP。

在示例工程中选择“Zynq FSBL”


FSBL 工程创建完成之后,SDK 软件会自动生成 FSBL.elf 文件,接下来我们就可以创建启动镜像。首先在 FSBL 目录下新建的文件夹BOOTIMAGE,用来存储生成的镜像文件。

设置输出文件的路径:


依次添加 FPGA 配置文件,注意添加顺序不能乱~




添加完成后如图~


点击“Create Image”,完成 BIN 文件的创建。创建完成后,在我们指定的文件夹下可以看到生成的两个文件,如下图所示:

五、实验结果

我们只需要将生成的 BOOT.bin 文件拷贝到 SD 卡BOOT分区就可以,给开发板插卡通电,只连接一根USB线用来串口通信、一根信号线连接示波器~

打开一个串口软件,随机发送数字:

观测示波器:

换个数字:


由此可见,程序已经固化完成~

总结

这一节虽然简单但是我们必须要熟练掌握的技能,我们成功的在“UART串口+AXI GPIO控制DDS IP核输出实验”的基础上,创建 FSBL实现程序上电自从SD 卡启动。积跬步才能致千里,路阻且长~慢慢走吧。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空lg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值