参考资料
正点原子《领航者 ZYNQ 之嵌入式 SDK 开发指南》详细的配置资料中都有介绍,本文只针对个人实验需求进行简要说明
固化流程
调试阶段是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。但在实际应用中需要程序在上电或者复位时让程序自动运行,这个过程需要启动引导程序(Boot Loader)的参与。Boot Loader 会加载 FPGA 配置文件,以及运行在 ARM 中的软件应用。
1、基本的硬件配置
在进行固化前请确保使能 QSPI 以及 SD 控制器外设,并分别设置 Bank0 和 Bank1 的电平标准。建议把串口和一些必要的配置都勾选上以免以后加功能还重新设置。
2、FSBL(First-Stage Boot Loader)工程和启动镜像创建
2.1 在工程目录中修改bsp设置
在弹出的 BSP 设置界面中,勾选“xilffs”,以使用 FAT 文件系统。工程需要的包要保留
2.2 创建FSBL 工程
在菜单栏中选择“File->New->Application Project”,然后在弹出的新建工程界面中设置工程名,并选择工程中的 BSP,如下图所示,接下来点击 Next,并在示例工程中选择“Zynq FSBL”,最后点击“Finish”,如下图所示。FSBL 工程创建完成之后,SDK 软件会自动执行编译过程,生成 FSBL.elf 文件。
2.3 创建启动镜像
在 SDK 菜单栏中选择“Xilinx -> Create Boot Image”
在弹出的创建 Boot Image 对话框中,设置输出文件的路径(可以自己指定),然后在add处添加配置文件
首先添加的是 FSBL,在 Partion type 一栏默认的文件类型为 bootloader,然后指定 FSBL.elf 所在的文件路径。点击“OK”后返回到上图所示的界面,再次点击“Add”按钮,添加 FPGA 配置文件,注意添加顺序,bit在FSBL之后。
ELF 文件添加完成后,创建 Boot Image 界面如下图所示。点击“Create Image”,完成 BIN 文件的创建。
3、SD卡启动
将 Micro SD 卡插入读卡器,然后在电脑上将其格式化为 FAT32 格式。将生成的 BOOT.bin 文件拷贝到 SD 卡根目录下,注意SD卡名字也要改成BOOT,启动时将选择到SD启动即可。
4、QSPI Flash 启动
将程序固化到 QSPI Flash 需要使用 JTAG 下载器,下载到QSPI Flash时保证当前是在JTAG启动模式。在 SDK 软件的菜单栏中点击“Xilinx->Program Flash”。
在弹出的对话框中指定前面所生成的镜像文件 BOOT.bin 以及 FSBL.elf 文件
FLASH 编程结束后,控制台提示信息如下图所示。接下来关闭开发板电源开关,切换到QSPI Flash启动即可。
遇到的问题
- 上点后串口打印错误信息: FSBL Warning !!!Bitstream not loaded into PL Partition order invalid
出现该问题是因为创建镜像文件时bit文件位置不对。bit一定要在FSBL之后
- 网络连接无效
PS工程可能会用到很多其他的库,bsp设置里一定要保留需要的库选项,确定没有问题再生成FSBL工程。