为包含配置bitream和Microblaze软件的Xilinx Spartan-6创建可引导SPI闪存(PROM文件)的设计流程
|
我想知道为串行SPI Flash创建PROM文件(.MCS)的正确过程,该文件包括FPGA配置位流和Microblaze处理器要使用的软件。假设我的硬件和软件设计都已完成。
我正在使用Xilinx Spartan-6评估板SP605,它具有多个非易失性存储设备,并且我希望使用串行SPI Flash来存储FPGA比特流和需要加载到其中的Microblaze软件记忆。仅当Microblaze的代码驻留在内部BRAM中时,我才能实现此目的。如果我创建链接脚本,以便将代码或数据段放置在外部DDR3 RAM中,则它将失败。
-编辑-
好的,所以我尝试了几种不同的方法,我对我需要做的事情有了更好的了解,但仍然没有成功(顺便说一句,谢谢您对安迪的回复)。因此,我尝试了2种不同的方法。对于这两个文件,我首先将系统位流与bootloader程序合并,以生成一个运行良好的新.bit(download.bit)文件(当您在SDK中命中程序并选择Bootloader来加载BRAM时,它将data2mem调用为生成新的download.bit文件)。
第一种方法-BIN文件
一旦完成我的主程序(使用针对DDR RAM的链接脚本),我就调用mb-objcopy从.elf生成一个bin文件:
mb-objcopy -O binary program -R .vectors_reset -R .vectors.sw_exception -R vectors.interrupt -R .vectors.hw_exception dummy.elf dummy.b
然后,我使用iMPACT使用download.bit和dummy.b创建MCS文件。我将download.bit放置在SPI Flash的起始地址,并将dummy.b放在更下方(引导加载程序已指向该地址)。然后,我将MCS刻录到串行SPI FLash,重新启动,然后启动引导程序运行,并且应该将所有内容复制到DDR RAM,但是主程序不起作用。我在这里想念什么吗?如果我尝试使用iMPACT而不将主程序从.elf更改为BIN,则PC挂起(有时甚至必须完全重置计算机),并且我有一台速度非常快且配备内存的PC。
我使用的引导程序与Xilinx XAPP1146文档中链接的引导程序相同。
第二种方法-记录文件
除了使用相同的mb-objcopy命令生成SREC而不是BIN文件外,步骤几乎相同(这一次我不删除对BIN文件需要执行的任何扇区)否则会生成一个巨大的文件)。
我使用的引导程序是SDK软件所具有的一种。
请任何人让我知道您是否已成功为Microblaze创建了引导加载程序。
提前致谢,
埃里克
没有找到相关结果
已邀请:
3 个回复
眠缝
帆攀缺锯欧
(上面的最后一个命令使用您的FPGA位文件和引导程序创建一个引导映像) 然后使用XSDK对应用程序@引导程序指定的偏移量进行编程 接下来,使用XSDK对Bootloader @ 0x0进行编程 -注意,当您从XSDK中选择\“ Program Flash \”时,您需要浏览至bootloader.bin并在文件类型过滤器中选择*而不是.bin; .elf; *。srec在浏览器窗口中,这样您就可以选择bootloader.bin 让我知道您是否需要我澄清任何步骤。下周将其添加到我的博客并附有屏幕截图。 make_bpi_up.impact文件包含以下内容
MacGyverQue
漂汀拦