修改时间 11-26-2020 03:29 PM
麻烦xilinx的工程师帮帮忙回答几个问题
工具:vivado 2016.4
器件: v7
现象:microblaze 软核 SDK 生成elf,通过vivado关联生成 固化文件 .Bin 。固化在Flash中,上电发现FPGA逻辑加载了,软件没有加载。
问题1:想知道microblaze 程序固化后加载和引导过程。
问题2:SDK软件中并没有发现 bootloader这种文件。固化软件后如何加载bootloader?
问题3:bootloader默认是不是存储在microblaze的bram中?bram最大是1MB吗?超出1MB该怎么办?
问题4:是否可以更改microblaze 的BRAM变为DDR等内存来存储加载文件?
问题5:最后请工程师帮帮忙分析分析原因。
感谢!
修改时间 11-30-2020 02:41 PM
问题1:想知道microblaze 程序固化后加载和引导过程。
如果你的sdk程序的所有section在linker script(LD)文件里都设置在bram memory里,那么elf就可以完全集成在bitstream里。反之,如果有任何section设置在ddr memory里,都需要bootloader来把elf从flash里加载到ddr memory。
问题2:SDK软件中并没有发现 bootloader这种文件。固化软件后如何加载bootloader?
sdk里面带有两种bootloader,一个是给BPI flash用的,一个是给SPI flash用的,
C:\Xilinx\SDK\2018.3\data\embeddedsw\lib\sw_apps\srec_bootloader
C:\Xilinx\SDK\2018.3\data\embeddedsw\lib\sw_apps\srec_spi_bootloader
问题3:bootloader默认是不是存储在microblaze的bram中?bram最大是1MB吗?超出1MB该怎么办?
bootloader必须全部在bram里,bram的大小是在vivado工程里设置的,如果vivado里设置的bram memory size比实际fpga芯片里的bram多,vivado会报错的。
问题4:是否可以更改microblaze 的BRAM变为DDR等内存来存储加载文件?
系统启动的时候只会加载bitstream,这个时候ddr memory里不会有任何程序,microblaze必须先从bram启动,即bootloader。
问题5:最后请工程师帮帮忙分析分析原因。
你可以在sdk里单步调试bootloader,看看问题出在哪里。