vivado用JTAG固化PL+PS程序方法
VIVADO从2017.3版本开始,Xilinx官方为了使Zynq-7000和Zynq UltraScale +实现流程相同,在QSPI FLASH使用上做了变化,即Zynq-7000编程flash需要“指定的fsbl”。因为在QSPI引导模式下启动,则“指定的fsbl”将尝试从flash加载分区,从而导致flash编程的错误行为。导致不能下载flash或下载flash后不能启动。
1、在vivado中的ZYNQ配置当中添加QSPI端口,如图1所示配置,其它的逻辑文件不变,保存进行SYNTHESIS、IMPLEMENTATION和Generate Bitstream。
图1
2、导出硬件,并包含bitstream文件,如图2所示
图2
3、启动SDK,新建fsbl程序如图3所示。
图3
4、选中工程,右击,选择Create Boot Image,如图4所示
图4
5、按顺序添加,第一步,设置好文件的输出路径后,点击add添加fsbl.elf,Partition type 为 bootloader,第二步,点击add添加FPGA PL的比特流文件.bit,Partition type 为 datafile,第三步,点击add添加想要固化的可执行文件.elf,Partition type 为 datafile,之后点击Create Image,生成BOOT.bin文件,如图5所示
图5
6、新建fsbl_load程序,如图6所示
图6
7、在fsbl_load工程文件下找到main文件,在main函数中找到
/** Read bootmode register*/
BootModeRegister = Xil_In32(BOOT_MODE_REG);
BootModeRegister &= BOOT_MODES_MASK;
在这个位置下添加BootModeRegister = JTAG_MODE;保存并编译,如图7所示
图7
8、点击xilinx下的Program Flash,加载刚刚生成的BOOT.bin与fsbl_load文件生成的fsbl_load.elf,Flash Type选择qspi-x4-single,点击Program,等待Flash Operation Successful下载完成,重新上电设备即可运行新程序,如图8所示。
图8