实验环境:正点原子领航者开发板(zynq7020),vivado2020.2版本。
目标:实现Qspi的flash固化和sd卡固化
一、vivado的PL部分设置
zynq的固化,哪怕我们的工程只使用了 ZYNQ 芯片 PL 端的资源,在固化时也需要引入 ARM 硬核,即固化需要在嵌入式 Vitis 软件中完成。
首先,在vivado的BD设计中需要勾选如下设置:
Qspi勾选引脚根据核心板原理图中查看:
以及SD卡部分勾选如下:
还要注意勾选sd卡detect位
这次,可以从底板的原理图可以找到它:
对应到核心板接插件上,可以知道是MIO10脚,故勾选。
vivado这边的工作完了,便可以编译和生成bit流,最后导出硬件文件。
二、Vitis工程建立
建立时勾选Generate boot components
进入工程后直接对库进行编译
库不用额外勾选什么选项,我这都是没勾选的也能固化:
编译结束后,新建一个工程,我这直接以helloworld为例,注意:helloworld的例程需要用到串口,故要在vivado的BD设计中勾选串口项:
注意,新建的工程先不编译,右键hello_world_system,点击Create Boot Image
别点错了,要选中画圈的部分再右键才有Create Boot Image的选项,而不是画线的部分
在弹出的界面,它会自动识别或设置文件位置,接下来直接点击Create Image
它会出现如下进度条,结束便代表设置完成:
之后再点击工程的编译就会生成对应的BOOT文件
三、程序下载
1.QSPI程序下载
完成上面的步骤后,接上JTAG,点击Program Flash就能把程序下载到flash
弹窗保持默认便可以,它能自动识别出来对应文件路径的:
之后等待程序写入完成:
之后,断电后,将zynq启动方式的拨码开关拨到QSPI的启动方式,这便可以了。
2.SD卡启动
将之前生成的BOOT文件拷贝到SD卡即可,BOOT文件生成位置,可以打开之前的Create Boot Image界面去跳转到output位置:
之后,按照如下教程走即可: