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文件的生成

  1. 工程编译完成之后,工程中就生成了bit文件和elf文件,可用于生成boot.bin;
  2. Vivado界面导出硬件,新建SDK工程,Fileàexportàexport hardware,勾选include bitstream ,OK;
  3. Fileàlaunch SDK,加载到sdk,ok;
  4. 导出完成后,fileànewàapplication project;
  5. 工程命名为HelloWorld,next;
  6. 选择自带的HelloWorld程序做测试,单机finish;
  7. 这样就新建好了一个HelloWorld工程,在工程中新建一个应用工程,fileànewàapplication project,填写工程名FSBL,单击next,工程类型选择Zynq FSBL;
  8. 选中要做固化的工程,单击右键,create boot image;
  9. 在新窗口中出现三个文件,FSBL.elf、.bit、.elf,制作镜像文件需要这三个文件;
  10. 直接单击create imge即可完成boot.bin的创建,在要做固化的文件夹中出现bootimage文件夹,展开后有BOOT.bin文件;
  11. Boot.bin文件可以作为SD卡启动文件和SPI启动文件。

SD启动:将生成的boot.bin文件复制到SD卡,再将SD卡插到开发板,开机后系统就会从SD卡启动,程序掉电不丢失。

QSPI-FLASH程序固化

  1. 新建环境变量

计算机à属性à高级系统设置à高级à环境变量à新建系统变量

变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ

变量值:10000000

  1. 生成加载QSPI FLASH的fsbl文件

新建一个新的FSBL文件,命名为zynq_fsbl。

Fileànewàapplication project,输入zynq_fsbl,next,选择Zynq FSBL,finish。

  1. 打开zynq_fsbl的main.c文件,增加”BootModeRegister = JTAG_MODE;”保存并编译。
  2. 模式开关切换到QSPI启动模式(1-ON,2-OFF)开发板通电。
  3. 选择Xilinx Tools > Program Flash或单击Program Flash Memory。
  4. 加载刚才生成的boot.bin文件和zynq_fsbl文件,单击program。
  5. 下载完成后断电重新打开电源,就从FLASH加载了。

你可能感兴趣的:(vivado,硬件工程)