Hallo, ich versuche jetzt schon seit längerem, meine FPGA Konfiguration + Nios2 Software im EPCS Configuration Flash unterzubringen. Dazu will ich den Flash Programmer der Nios2 EDS nutzen. Im SOPC Builder habe ich den EPCS Controller hinzugefügt. Wie muss nun eigentlich der Reset Vector werden? Kann ich den Reset Vector auf mein bisheriges SRAM zeigen lassen, oder muss er zwangsläufig aufs EPCS zeigen? Beides habe ich ohne Erfolg ausprobiert. Die FPGA-Config konnte ich wohl mithilfe des Nios programmieren. Leider wird das Programm, das sich ebenfalls im EPCS befinden sollte, nicht gestartet. Gruß Björn
Reset vector soll auf EPCS zeigen. Dann kannst Du mit: sof2flash --input=foo.sof --output=foo.flash --epcs elf2flash --input=nios_fw.elf --output=nios_fw.flash --epcs --after=foo.flash die *.flash Dateien erstellen. Diese kannst Du dann mit $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "foo.flash" --base=0x9000000 --epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program und dann mit $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "nios_fw.flash" --base=0x9000000 --epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program programmieren. Im FPGA soll zu diesem Zeitpunkt ein FPGA Design mit EPCS-Base Addresse 0x900000 laufen (oder eben andere, aber gleiche). Über JTAG geht es halt am schnellsten. Oder, Du erstellst eine pof Datei mit FPGA-Konfiguration und NIOS Firmware und flashst sie über active serial rein. Hoffe, ich konnte Dir etwas helfen Kest
Hallo, erstmal vielen Dank für die ausführliche Beschreibung. Das Erstellen der .flash Dateien und programmieren hat damit funktioniert. Die FPGA Konfiguration klappt damit auch. Leider startet mein Nios aber immer noch nicht. Der Reset Vector zeigt nun ins EPCS. Was mich wundert: im Linker Script zeigen sämtliche Sections noch ins SRAM (siehe Anhang). Lege ich nun .text dort mit uns EPCS, passt es nicht mehr mit rein, da mein EPCS angeblich nur 2k Speicher hat? Wo liegt mein Verständnisfehler? ;-) Gruß Björn
Ich mache es folgendermaßen: reset-Vector wird auf EPCS gesetzt (im QSYS bei NIOS Reset Vector). Die Firmware läuft dann aber aus dem DDR2 Speicher. Nach dem Booten sorgt also ein Teil im EPCS Controller dafür, dass alles in den DDR2 Speicher umkopiert wird (bei Dir also ins SRAM). Deine Sections sehen erstmal richtig aus. Ich habe allerdings noch einen kleinen "Trick" gemacht: ich habe noch zusätzlich einen ONCHIP_RAM für "exceptions". Ob es daran liegt, weiß ich leider nicht. Sorry, dass ich da jetzt nicht weiterhelfen kann Kest
Ich werde noch ein wenig rumprobieren und suchen. Irgendwie muss es ja zum laufen zu bringen sein. Habe auch etwas von einem "Boot-Copier" gelesen, der eben das Nios Programm, vor der Ausführung, vom EPCS in einen anderen Speicher kopieren soll. Trotzdem danke für Deine Hilfe. Sobald es läuft, poste ich nochmal, woran es lag. Gruß Björn
Ach noch was, welche Quartus Version hast Du? Ich hoffe doch 12 und aufwärts? Das mit dem Bootcopier habe ich auch früher gemacht (mit Quartus 8/9). Aber mittlerweile muss man das nicht mehr machen (solange man nur ein FPGA-Konfigurationsfile und eine NIOS-Konfiguration hat) Kest
12.0 sp2 Web Edition unter Linux. Ok, das erklärt vermutlich, warum mich das Tool nie explizit nach dem File für den Copier gefragt hat :-)
Kest schrieb: > die *.flash Dateien erstellen. > > Diese kannst Du dann mit > $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "foo.flash" --base=0x9000000 > --epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster > on localhost [USB-0]' --program > > und dann mit > > $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "nios_fw.flash" > --base=0x9000000 --epcs --accept-bad-sysid --device=1 --instance=0 > '--cable=USB-Blaster on localhost [USB-0]' --program > > programmieren. Wenn man da die selbe Base-Adresse angibt, würde dann nicht nachdem ich das sof-File drauf geflashed werden anschließend durch die niosII Firmware das sof-File überschrieben werden? lg Dustin
Dustin F. schrieb: > > Wenn man da die selbe Base-Adresse angibt, würde dann nicht nachdem ich > das sof-File drauf geflashed werden anschließend durch die niosII > Firmware das sof-File überschrieben werden? ahja.. wer lesen kann ist klar im Vorteil: Kest schrieb: > elf2flash --input=nios_fw.elf --output=nios_fw.flash --epcs > --after=foo.flash --after übersehen. Danke! Funktioniert Super!!! lg Dustin
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.