Design-Flow zum erstellen eines bootfähigen SPI-Flash (PROM-Datei) für ein Xilinx-Spartan-6-Konfiguration mit bitsream UND Microblaze-software
Ich würde gerne wissen, die richtige Prozedur zum erstellen eines PROM-Datei (.MCS) für eine serielle SPI-Flash, die SOWOHL die FPGA-Konfigurations-bitstream und die software für die Verwendung durch den Microblaze-Prozessor. Dies wird vorausgesetzt meine hardware-und software-design ist alles erledigt.
Ich bin mit einem Xilinx Spartan-6-evaluation-board, das SP605, die mehrere nicht-flüchtigen Speicher-Geräte und ich möchte die serielle SPI-Flash zum speichern der FPGA-bitstream UND der Microblaze die software, die benötigt werden in den Arbeitsspeicher geladen. Ich bin in der Lage zu erreichen diese nur, wenn der Microblaze ist code ist, sich in die internen BRAMs. Wenn ich meine link-Skript so, dass es Orte, die code oder Daten in den Abschnitten externe DDR3-RAM, es funktioniert nicht.
-- EDIT --
OK, also ich habe versucht ein paar verschiedene Dinge, und ich habe ein besseres Verständnis von dem, was ich tun müssen, aber noch keinen Erfolg (was, btw, vielen Dank für deine Antwort Andy). So, ich habe versucht 2 verschiedene Dinge. Für beide von Ihnen, die ich zuerst verschmelzen die system-bitstream mit dem bootloader-Programm, um einen neuen zu generieren .bit (download.bit) - Datei, die läuft einfach gut (wenn Sie die hit-Programm im SDK, und wählen Sie die bootloader zu laden, der BRAM, ruft data2mem zum generieren des neuen download.bit-Datei).
ERSTEN ANSATZ - BIN-DATEI
Einmal mein main Programm gemacht (mit einem linker-Skript targeting die DDR-RAM und alle) ich rufe mb-objcopy zum erzeugen eines bin-Datei aus .elf eins:
mb-objcopy -O binary program -R .vectors_reset -R .vectors.sw_exception -R vectors.interrupt -R .vectors.hw_exception dummy.elf dummy.b
Dann habe ich mit iMPACT zu erstellen und MCS-Datei mit herunterladen.bit-und dummy.b. Ich Stelle download.das bit an der Ausgangsadresse von der SPI-Flash und dummy.b weiter unten (der bootloader weist bereits auf diese Adresse). Dann brenne ich die MCS an die serielle SPI-FLash, Neustart und der bootloader läuft und angeblich kopiert alles, was auf DDR-RAM, aber das Hauptprogramm nicht funktioniert. Bin ich hier etwas fehlt? Wenn ich versuche mit iMPACT ohne änderung des Hauptprogramms aus .elf BIN, der PC hängt (manchmal habe ich sogar komplett den computer zurücksetzen), und ich habe eine sehr schnelle und Speicher-PC ausgestattet.
Den bootloader, die ich verwendet wurde der gleiche Zusammenhang in der Xilinx XAPP1146 Dokument.
ZWEITE ANSATZ - SREC-DATEI
Die Schritte sind so ziemlich das gleiche, außer, dass ich die gleiche mb-objcopy-Kommando zum erzeugen einer SREC anstelle einer BIN-Datei (dieses mal habe ich nicht entfernen Sie alle der Sektoren, die ich brauchte, zu tun, für die BIN-Datei die es sonst erzeugen würde eine enorme Datei).
Den bootloader, die ich benutzt habe ist die, die die SDK-software.
Bitte jemand lassen Sie mich wissen, wenn du erfolgreich einen bootloader für den Microblaze.
Vielen Dank im Voraus,
Erick
- Dies tun könnten, besser auf die Elektronik.se. Sie können Kennzeichnen Sie Sie, und Fragen Sie einen moderator zu migrieren.
- Können Sie aktualisieren Sie Ihre Frage im detail auf die Weise erzeugen Sie die MCS-Datei und die Fehler bekommen Sie? Sind Sie mit der
-data_file
option oder seine GUI-äquivalent? - Überlauf-Fehler-sounds wie der Blitz kann nicht groß genug sein. Hier sind ein paar Ressourcen: AR 36210, AR 35345, Programm-Benutzer-Daten in den internen flash...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gebaut habe, Bootloader, aber mit zwei unterschieden sich von dir:
Fall, es gibt Sie irgendwelche Ideen, hier ist was ich tun:
Habe ich eine eigene SPI-flash-Gerät, von dem lese ich eine ELF-Datei, die ich dann analysieren und on-the-fly und der transfer der entsprechende code/Initialisierung Abschnitte, in den DRAM. Es gibt keinen Grund, dass Ihr bootloader konnte nicht geladen werden aus dem gleichen flash-Gerät, das als config obwohl.
Es ist nicht eine vollständig flexible ELF-parser, wie es wird davon ausgegangen, dass die Abschnitte kommen in der gleichen Reihenfolge wie im Abschnitt Kopfzeile der Tabelle berichtet Sie, aber das ist, wie der Microblaze-tools erzeugen Dateien, so funktioniert das OK.
(Und vergessen Sie nicht, Streifen Sie die debugging-Informationen aus der Datei vor der Programmierung es an flash!)
Es ist viiiiel einfacher als all das.
impact -batch make_bpi_up.impact
xmcsutil -accept_notice -18 pi outfile.hex -o bootloader.bin
(Die letzten oben aufgeführten Befehl erstellt ein Bootfähiges image w/FPGA-bit-Datei und der bootloader)
Dann Programmieren Sie Ihre Bewerbung @ das offset angegeben, indem Sie Ihren bootloader mit XSDK
Als Nächstes Programm den bootloader @ 0x0 mit XSDK
- beachten Sie, wenn Sie die Auswahl "Programm Flash" von XSDK, müssen Sie auf durchsuchen, um den bootloader.bin, und wählen Sie * im Gegensatz zu .bin;.elf;*.srec in der Dateityp-filter im browser-Fenster, so werden Sie in der Lage, wählen Sie den bootloader.bin
Lassen Sie mich wissen, wenn Sie mich brauchen, um zu klären, einen der Schritte. In den Prozess der das hinzufügen dieser zu meinem blog w/screenshots im Laufe der nächsten Woche.
Den make_bpi_up.Auswirkung Datei besteht aus den folgenden
MacGyverQue
klicken Sie rechts auf microblaze ,klicken Sie auf zuordnen, ELF-Datei fügen Sie Ihre .elf-Datei und konfigurieren-Modus .generieren bitstream. und konvertieren .bit .mcs und laden Sie die Datei herunter ..
die beiden der .elf und .mcs-Datei gespeichert ist, die Sie in flash