一、vitis软件中,使用赛灵思烧写器,在JTAG模式烧写ARM程序时,ARM 程序烧写失败。报出如下警告:(Exit breakpoint of FSBL(XFsbl_Exit) is not hit within allocated wait time of 60 seconds......)
问题分析,在vivado搭建硬件平台时,将ZYNQ IP的DDR控制器不进行勾选,重新编译后ARM程序可以烧写。但是一旦勾选上DDR控制器,ARM程序烧写就失败。
查阅资料了解到,当勾选DDR控制器时,FSBL阶段会往DDR中读写某些内容,若读写失败会影响ARM启动。由此推断,硬件DDR异常,导致无法烧写ARM。
二、如何替换MPSOC中的BOOT.bin中的FPGA bit文件。
赛灵思MPSOC系列芯片采用FPGA+ARM的架构,FPGA的bit烧写文件由linux软件人员打包封装至BOOT.bin文件中,每次给设备上电时FPGA自启动。
对于FPGA开发人员而言,调试过程中如果需要经常给他人升级FPGA程序,每次都需要linux软件人员给封装,是非常不方便的。因此可以使用vitis软件自行生成BOOT.bin文件,生成完毕后,保存至linux系统下对应的目录中即可。
那么如何生成BOOT.bin文件呢?
- 首先在vivado下生成xsa文件,linux开发人员根据此硬件平台安装linux系统后,此时设备内已经保存好了BOOT.bin(内涵FPGA的bit文件)
- 当更改了bit文件时,vivado的BLOCK DESIGN中的ZYNQ IP核对外的接口信号没有发生改变时,可以使用vitis自行生成BOOT.bin
2.1 向linux开发人员索要两个文件:bl31.elf、u-boot.elf;
2.2 在vivado中生成新的xsa文件;
2.3 在vitis中使用新的xsa文件,创建platform project;
2.4编译完成后,先拷贝出两个文件:fsbl.elf、pmufw.elf;
2.5 点击vitis软件下的Xilinx—Creat Boot Image;
按照自己需要选择BIF文件路径,按照提示添加bl31.elf、u-boot.elf、fsbl.elf、pmufw.elf、TOP.bit;
2.6 后续只需要导入BIF文件,就可以直接添加上述所有文件了(对应文件路径)。
参考链接:Boot and Configuration — Embedded Design Tutorials 2021.2 documentation