使用VITIS 2024 下载PS端代码到Flash中;
1 创建vivado工程
可参考其他教程或者按照下面的过程相对简略,也仅仅只是简单的simple。
① 创建block design
②配置IP
选择SPI和UART引脚,clock 、配置DDR等。
然后ctrl+s保存。
③valid Design
④生成顶层HDL
⑤ Export Hardware
2 创建vitis 工程
①打开vitis
打开vitis,可以通过vivado tool,也可直接使用双击打开软件
②open workspace
在某目录创建一个文件夹。打开软件后,选择open workspace,选择刚才创建的文件夹。
③创建platform
上面的.xsa是vivado最后到处的硬件设计。
然后next --> finish.
这里注意选择Generate Boot artifacts。后面烧录程序时,就不需要单独创建FSBL了。
创建好的platform 如下
然后编译一下,看看是否有错,一般几乎不会错。
④创建application
选中刚才创建的platform–>next–>next–finish
⑤ biuld Application:
连好板子,然后点run或者debug,就可以运行或者调试程序了。
3 创建Boot image
点击"Create Boot image"后在弹出的对话框中,可以看到上面创建的platform和application中的编译文件已经自动加载进来了,可以点击查看详情,类型自动分配为Bootloader何datafile
可以点+后面添加其他的datafile,,但bootloader只有一个。
选择路径,然后create Image
4 Flash Program
这里会出现一个问题:
上面的乱码是不支持中文。
这里Program Flash cancel的原因暂未找到。
需要使用终端来烧录Flash。烧录Flash时需要注意板子的模式选择JTAG。
打开终端:
复制上面的指令,然后粘贴到终端中,,删除无用的信息,然后回车
e:\ZYNQ\EmbedSystem\09_timer\sw>program_flash -f E:\ZYNQ\EmbedSystem\09_timer\sw\timer_intr_led\output\BOOT.bin -offset 0 -flash_type qspi-x4-single -fsbl E:\ZYNQ\Em
bedSystem\09_timer\sw\timer_platform\zynq_fsbl\build\fsbl.elf -url TCP:127.0.0.1:3121
'\gnu\microblaze\lin\bin\' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'\gnu\microblaze\nt\bin\' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'\gnuwin\bin\' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
****** Program Flash
****** Program Flash v2024.1 (64-bit)
**** SW Build (by xbuild) on 2024-05-19-14:06:15
**** Start of session at: Mon Sep 2 15:29:14 2024
** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
Connected to hw_server @ TCP:127.0.0.1:3121
Target not specified. Selecting target_id 2 (arm_dap) by default.
Retrieving Flash info...
Initialization done
Using default mini u-boot image file - F:/DevelopSoft/Xilinx/Vitis/2024.1/data\xicom\cfgmem\uboot\zynq_qspi_x4_single.bin
BOOT_MODE REG = 0x00000000
Downloading FSBL...
Running FSBL...
Finished running FSBL.
READ: ARM_PLL_CFG (0xF8000110) = 0x000FA220
READ: ARM_PLL_CTRL (0xF8000100) = 0x00028008
READ: ARM_CLK_CTRL (0xF8000120) = 0x1F000200
READ: IO_PLL_CFG (0xF8000118) = 0x000FA240
READ: IO_PLL_CTRL (0xF8000108) = 0x00036008
Info: Remapping 256KB of on-chip-memory RAM memory to 0xFFFC0000.
MASKWRITE: addr=0xF8000008, mask=0x0000FFFF, newData=0x0000DF0D
MASKWRITE: addr=0xF8000004, mask=0x0000FFFF, newData=0x0000767B
U-Boot 2024.01-07119-gd02ba93-dirty (Mar 21 2024 - 01:38:17 +0530)
Model: Zynq CSE QSPI SINGLE Board
DRAM: 256 KiB
WARNING: Caches not enabled
Core: 8 devices, 7 uclasses, devicetree: embed
Loading Environment from <NULL>... OK
In: dcc
Out: dcc
Err: dcc
Zynq> sf probe 0 0 0
SF: Detected w25q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Zynq> Sector size = 65536.
f probe 0 0 0
Performing Erase Operation...
sf erase 0 20000
SF: 131072 bytes @ 0x0 Erased: OK
Zynq> Erase Operation successful.
INFO: [Xicom 50-44] Elapsed time = 1 sec.
Performing Program Operation...
0%...sf write FFFC0000 0 10000
device 0 offset 0x0, size 0x10000
SF: 65536 bytes @ 0x0 Written: OK
Zynq> 100%
sf write FFFC0000 10000 F218
device 0 offset 0x10000, size 0xf218
SF: 61976 bytes @ 0x10000 Written: OK
Zynq> Program Operation successful.
INFO: [Xicom 50-44] Elapsed time = 1 sec.
Flash Operation Successful
over