我想知道爲串行SPI閃存創建PROM文件(.MCS)的正確過程,包括FPGA配置比特流和由Microblaze處理器使用的軟件。假設我的硬件和軟件設計全部完成。設計流程爲包含配置位流的Xilinx Spartan-6創建引導SPI閃存(PROM文件)AND Microblaze軟件
我正在使用Xilinx Spartan-6評估板SP605,它具有多個非易失性存儲設備,我希望使用串行SPI Flash來存儲FPGA比特流以及需要加載的Microblaze軟件進入記憶。只有Microblaze的代碼位於內部BRAM中,我才能達到此目的。如果我創建鏈接腳本,以便將代碼或數據部分放入外部DDR3 RAM中,則會失敗。
- 編輯 -
好了,我已經嘗試了幾個不同的東西,我有一個更好的理解什麼,我需要做的,但仍然沒有成功(其中,順便說一句,感謝您的回覆安迪)。所以,我嘗試了兩種不同的東西。對於他們兩人,我首先將系統比特流與bootloader程序合併,以生成一個運行良好的新.bit(download.bit)文件(當您在SDK中選擇程序並選擇引導加載程序加載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創建和MCS文件使用download.bit和dummy.b。我將download.bit放置在SPI Flash的起始地址處,並將dummy.b放在更低的位置(引導加載程序已指向該地址)。然後,我將MCS燒錄到串行SPI閃存中,重新啓動並啓動引導加載程序,據稱將所有內容複製到DDR RAM中,但主程序無法運行。我在這裏錯過了什麼嗎?如果我嘗試在不將主程序從.elf更改爲BIN的情況下使用iMPACT,則PC掛起(有時甚至必須完全重置計算機),並且我擁有速度非常快且配有內存的PC。
我使用的引導程序與Xilinx XAPP1146文檔中鏈接的引導程序相同。
第二種方法 - SREC文件
的步驟是幾乎相同的,只是我用同樣的MB-objcopy把命令生成一個SREC而不是BIN文件(這個時候我不刪除任何的這些部門,我需要爲BIN文件做,否則它會產生一個巨大的文件)。
我使用的引導程序是SDK軟件的引導程序。
任何人都可以讓我知道你是否成功地爲Microblaze創建了一個引導程序。
由於提前, 埃裏克
這可能對electronics.se更好。您可以將其標記並請管理員遷移它。 – Andy 2011-04-13 19:05:37
你能否更新你的問題,詳細說明你生成MCS文件的方式以及你得到的錯誤?你正在使用'-data_file'選項還是它的GUI相當於?溢出錯誤聽起來像閃光燈可能不夠大。以下是一些資源:[AR 36210](http://www.xilinx.com/support/answers/36210.htm),[AR 35345](http://www.xilinx.com/support/answers/35345) .htm),[將用戶數據編入內部閃存...](http://forums.xilinx.com/t5/Design-Tools-Others/Program-user-data-into-internal-flash-of-Spartan3an -xc3s200an/TD-p/118996) – Andy 2011-04-13 20:21:46