取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Visitor
Visitor
218 次查看
注册日期: ‎10-08-2018

microblaze 不能加载软件程序。

麻烦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:最后请工程师帮帮忙分析分析原因。

 

感谢!

标记 (1)
0 项奖励
回复
1 回复
Xilinx Employee
Xilinx Employee
160 次查看
注册日期: ‎05-11-2010

问题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,看看问题出在哪里。

0 项奖励
回复