在使用开发板时,我们常常会遇到需要将某一段程序固化以长期使用的情况。zynq上可能的启动源有五种,而固化后自启动的方式通常只会用到两种,即通过QSPI启动核SD卡启动。这两种启动的操作方法网上有很多,流程大都如下:1、配置硬件并生成bit,将bit导出硬件,打开SDK
2、在SDK中设置好硬件平台和板级支持包
3、创建一个FSBL模板工程生成FSBL.elf文件,
4、结合工程生成的bit文件和工程的.elf文件生成BOOT.bin文件
5、将BOOT.bin文件下载至QSPI或拷贝至SD卡,设置启动模式,将开发板断电重启
但是笔者在进行验证时出现了错误结果,软件提示QSPI下载成功,但是无法正常运行,SD卡也无法正常启动。最后经过探讨猜测是由于笔者工程路径不是原路径,导致bsp下某个文件没有更新,于是对固化方法进行了优化,具体固化流程如下:
1、打开Vivado工程后先不急着配置,直接打开SDK,设置硬件平台。由于路径发生过更改,运行时软件会根据工程路径重新生成一个硬件资源描述文件,后缀为1。我们只需将旧的硬件资源描述文件删除,将新硬件资源描述文件的后缀1改为0 即可。
2、回到vivado中,配置zynq,使能QSPI和SD0
3、生成bit文件,并导出硬件,回到SDK。此时软件提示更新,点击更新。
4、点击工程中bsp文件夹,配置板级支持包,选择xiffs
5、新建一个基于已有的板级支持包的FSBL工程
6、点击生成的FSBL文件夹,右键创建bootimage
7、如果此时进行SD卡的固化,则将SD卡格式化后将生成的BOOT.bin文件拷贝至根目录即可,随后将SD卡插入开发板,配置启动方式,将开发板断电重启。
8、如果是固化到QSPI中,则在Jtag模式下点击Program Flash,将文件下载至QSPI Flash中,随后配置开发板启动模式为QSPI模式,将开发板断电重启即可。
|