如何固化ZYNQ PL端程序到FLASH

简介: ZYNQ7000板子上,PL端逻辑烧写到FLASH里面。怎么办?

前言:
本操作如何固化ZYNQ PL端程序到FLASH分享---基于广州星嵌电子科技有限公司设计研发的Zynq7015平台。
http://www.xines.cn/tech/64.html

FLASH型号
板载QSPI FLASH一颗,具体型号为:MT25QL256ABA1EW9-0SIT。

增加Block Design设计文件
首先,打开已经完成的Vivado设计例程,点击Project Manager下面的IP Integrator -> Create Block Design,创建Block Design设计文件:

在弹出的对话框中,点击OK:

在Diagram窗口,点击中间加号按钮,添加IP:

在弹出的IP添加窗口的搜索栏中,输入zynq字样,然后双击选中ZYNQ7 Processing System:

添加好ZYNQ7 Processing System IP核后,双击该IP核,对此IP核进行配置:

设置ZYNQ7 Processing System IP核的外设IO:

设置ZYNQ7 Processing System IP核的DDR内存,然后点击OK,完成IP核配置:

点击Run Block Automation,运行模块自动化,并在弹出的对话框中直接点击OK:

使用鼠标左键,单击FCLK_CLK0,并拖动鼠标至M_AXI_GP0_ACLK,将这两个管脚短接起来:

在Sources窗口,右键点击design_1.bd文件,在弹出的菜单中,选择Generate Output Products…,并在随后弹出的对话框中点击Generate:

输出文件生成完毕后,点击OK:

在Sources窗口,右键点击design_1.bd文件,在弹出的菜单中,选择Create HDL Wrapper…,并在随后弹出的对话框中点击Generate:

在弹出的对话框中直接点击OK:

修改顶层文件
在Sources窗口,双击打开刚刚生成的design_1_wrapper.v文件:

将Vivado之前的工程顶层模块例化到design_1_wrapper.v设计文件中:

整理design_1_wrapper.v模块的输入、输出管脚,并将Vivado例程顶层模块的管脚添加进来:

生成下载bit流文件
点击Generate Bitsteam,生成bit流文件,在弹出的对话框中选择Yes:

如果在生成bit流文件过程中,产生了如下错误,则按照错误提示,添加时钟约束,如下示例红框中所示,将红框里面的内容复制到约束文件中:

双击Constraints -> constrs_1下面的xdc约束文件,xdc约束文件打开后,将错误提示内容复制到xdc约束文件中,然后点击保存:

然后,再次点击Generate Bitsteam,生成bit流文件,在弹出的对话框中选择Yes。
bit流文件生成完成后,在弹出的窗口中点击Cancel:

导出硬件设计文件
点击File -> Export -> Export Hardware…:

在弹出的对话框中,选中Include bitstream,然后点击OK:

打开Xilinx SDK软件界面
点击File -> Launch SDK,并在弹出的对话框中点击OK:

随后,SDK软件被打开:

生成FSBL文件
在Xilinx SDK软件界面,点击File -> New -> Application Project:

用户自定义fsbl工程名,如下示例fsbl,然后点击Next:

选择Zynq FSBL模板,并点击Finish:

等待Build进度条完成:

fsbl工程Build进度条完成后,在fsbl -> Binaries目录下面会生成一个fsbl.elf文件:

生成下载镜像文件BOOT.bin
点击Xilinx Tools -> Create Zynq Boot Image:

指定bif文件存放路径,用户自定义位置:

添加FSBL文件,将刚刚生成的fsbl.elf文件添加到Boot image partitions中:

添加bit流文件,将bit流文件添加到Boot image partitions中:

最后,点击Create Image,生成镜像文件BOOT.bin:

烧写FLASH
烧写FLASH前,需确保下载模式配置为JTAG模式,即开发板SW2拨码开关的2位拨码均需要拨到ON的位置,如下图红框所示:

开发板上电,然后点击Xilinx Tools -> Program Flash:

点击Browse,选择刚刚生成的镜像文件BOOT.bin,然后点击Program:

等待烧写完成:

FLASH烧写完成后,在控制台输出Flash Operation Successful信息:

程序固化检验
烧写完FLASH后,给开发板断电,并将SW2拨码开关设置为QSPI FLASH启动模式,即1号拨码位拨到ON位置,2号拨码位拨到ON的对立面,如下图红色箭头所示:

开发板上电,查看实验程序是否运行起来。

相关文章
|
6月前
|
Linux 开发者
微处理器移植Linxu的GPIO操作
微处理器移植Linxu的GPIO操作
31 0
|
存储
ZYNQ-pbuf操作指南(一)
ZYNQ-pbuf操作指南
536 0
ZYNQ-pbuf操作指南(一)
|
存储 芯片 内存技术
Jlink使用技巧之读写SPI Flash存储芯片
Jlink使用技巧之读写SPI Flash存储芯片
1037 0
Jlink使用技巧之读写SPI Flash存储芯片
|
6月前
|
存储 芯片 SoC
ZYNQ程序固化
ZYNQ程序固化
|
6月前
NUC980修改内核支持spi-nand
NUC980修改内核支持spi-nand
73 2
|
6月前
|
Linux 开发工具 异构计算
【ZYNQ】QSPI Flash 固化程序全攻略
【ZYNQ】QSPI Flash 固化程序全攻略
906 0
|
6月前
|
开发工具 芯片 Perl
【ZYNQ】裸机 PS + PL 双网口实现之 ZYNQ 配置
【ZYNQ】裸机 PS + PL 双网口实现之 ZYNQ 配置
698 0
|
存储 编解码 芯片
ZYNQ裸板:LHB155304-RT篇
1553总线是一种指令/响应式串行总线标准,除了作为美军标在国外广泛应用于军用飞机坦克、船舶、卫星、导弹等领域,在国内已得到了广泛的应用。抗干扰能力强实时性好,且拥有着双冗余备份设计,数据传输极为可靠。就我个人认知来看,常见的实现形式一种是通过专用的接口协议芯片,相对比较简单集成度高;另一种是IP核,非常考验逻辑和软件设计的功底。此次工程选用了前者,LHB15530接口芯片,在不改变原有传输方式的前提下,突破了原有的1Mb/s的传输速率,可达4Mb/s,也能满足绝大部分应用场景。
464 0
ZYNQ裸板:LHB155304-RT篇
|
开发工具 内存技术
zynq程序固化补充篇: 不切换启动模式强制烧写
使用SDK2018.2第一次进行烧写 Flash,在qspi模式下会报错,只有切换至jtag模式下才可以进行烧录,后续的再次烧录不会出现类似问题。但是调试的时候必须切回jtag模式(将BOOT MODE 5拉低才可以调试)
2084 1
zynq程序固化补充篇: 不切换启动模式强制烧写
|
存储 安全 开发工具
ZYNQ裸板:程序固化篇
一般的调试中我们都是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。同样的,我们也可以将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序( Boot Loader) 的参与
414 0
ZYNQ裸板:程序固化篇