12、FPGA程序的固化和下载
使用仿真器下载BIT文件到FPGA时,板子断电后程序就 没有了,因此需要将程序固化到板卡的FLASH或SD卡中,下次启动板卡时就从FLASH或SD卡加载程序,不用再次使用仿真器下载程序了。
SD固化:将镜像文件拷贝到SD卡,设置拨码开关,使系统从SD模式启动。这样每次断电重启之后系统都会从SD启动。
QSPI FLASH固化:设置拨码开关,将镜像文件烧写进FLASH,使系统从QSPI FLASH启动。这样每次断电重启之后系统都会从FLASH启动。
固化文件准备:PL端的bit文件、PS端的elf文件、把bit文件及elf文件安置好的FSBL.elf文件。
BOOT.bin = FSBL.elf + 该工程.bit + 该工程.elf
工程编译之后会产生bit文件和elf文件,FSBL.elf文件是由SDK生成的。
Boot.bin文件的生成
- 工程编译完成之后,工程中就生成了bit文件和elf文件,可用于生成boot.bin;
- Vivado界面导出硬件,新建SDK工程,Fileàexportàexport hardware,勾选include bitstream ,OK;
- Fileàlaunch SDK,加载到sdk,ok;
- 导出完成后,fileànewàapplication project;
- 工程命名为HelloWorld,next;
- 选择自带的HelloWorld程序做测试,单机finish;
- 这样就新建好了一个HelloWorld工程,在工程中新建一个应用工程,fileànewàapplication project,填写工程名FSBL,单击next,工程类型选择Zynq FSBL;
- 选中要做固化的工程,单击右键,create boot image;
- 在新窗口中出现三个文件,FSBL.elf、.bit、.elf,制作镜像文件需要这三个文件;
- 直接单击create imge即可完成boot.bin的创建,在要做固化的文件夹中出现bootimage文件夹,展开后有BOOT.bin文件;
- Boot.bin文件可以作为SD卡启动文件和SPI启动文件。
SD启动:将生成的boot.bin文件复制到SD卡,再将SD卡插到开发板,开机后系统就会从SD卡启动,程序掉电不丢失。
QSPI-FLASH程序固化
- 新建环境变量
计算机à属性à高级系统设置à高级à环境变量à新建系统变量
变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ
变量值:10000000
- 生成加载QSPI FLASH的fsbl文件
新建一个新的FSBL文件,命名为zynq_fsbl。
Fileànewàapplication project,输入zynq_fsbl,next,选择Zynq FSBL,finish。
- 打开zynq_fsbl的main.c文件,增加”BootModeRegister = JTAG_MODE;”保存并编译。
- 模式开关切换到QSPI启动模式(1-ON,2-OFF)开发板通电。
- 选择Xilinx Tools > Program Flash或单击Program Flash Memory。
- 加载刚才生成的boot.bin文件和zynq_fsbl文件,单击program。
- 下载完成后断电重新打开电源,就从FLASH加载了。