Forum: FPGA, VHDL & Co. Umwandeln von *.elf (Nios II) nach *.flash für Altera Board Update Portal


von Student (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

wir haben hier ein Stratix IV Development Board (Transceiver Signal 
Integrity Development Kit, Stratix IV GX Edition).
Unser Design enthält einen Nios II Prozessor mit on-chip Memory (1MiB). 
Die Adresse im SOPC-Builder ist 0x00000000 bis 0x000fffff.
In der CPU ist der Reset Vector auf den onchip-memory mit einem Offset 
von 0x0 eingestellt.

Bis jetzt haben wir immer die Hardware (*.sof) per Altera Programmer 
über USB aufgespielt und dann die Software direkt über Eclipse 
(Rechtsklick - Run As - Nios II Hardware) gestartet.
Dies funktioniert problemlos.

Nun müssen die Configurations-Files fest in den Flash des Boardes 
(Aufteilung siehe Anhang). Altea bietet hierfür das "Board Update 
Portal" an (gestartet per Jumper auf dem Board).

Mit dem Befehl
1
sof2flash --input=filename.sof --output=filename_hw.flash --offset=0xC20000 --pfl --optionbit=0x18000 --programmingmode=FPP
hat das umwandeln der .sof Datei geklappt.

Die Software habe ich mit dem Befehl
1
elf2flash --base=0xA000000 --end=0xBFFFFFF --reset=0xA020000 --input=filename.elf --output=filenmae_sw.flash --boot=$SOPC_KIT_NIOS2/components/altera_nios2/boot_loader_cfi.srec
ebenfalls umgewandelt.

Hierbei kommt die Warnung:
1
(WARNUNG) elf2flash: Supplied reset address: 0xa020000 differs from the elf file reset vector: 0x0.

Nach dem Hochladen per Board Update Portal startet die übrige Hardware 
aber der Nios regt sich nicht. Manuell über Eclipse lässt er sich aber 
ganz normal starten.

Sind irgendwelche Adressen falsch eingestellt? Ich habe die Parameter 
direkt vom Beispiel im BUP übernommen.

Kann mir jemand erklären wo welche Adressen eingestellt werden müssen?
Habe ich sonnst irgendetwas übersehen?

Danke

von Duke Scarring (Gast)


Lesenswert?

Student schrieb:
> Sind irgendwelche Adressen falsch eingestellt? Ich habe die Parameter
> direkt vom Beispiel im BUP übernommen.

Wenn Dein Speicher von 0x00000000 bis 0x000fffff geht, würde ich in der 
folgenden Zeile mal die Parameter base, end und reset anpassen...

> elf2flash --base=0xA000000 --end=0xBFFFFFF --reset=0xA020000
> --input=filename.elf --output=filenmae_sw.flash
> --boot=$SOPC_KIT_NIOS2/components/altera_nios2/boot_loader_cfi.srec

Duke

von Student (Gast)


Lesenswert?

Danke für die Antwort.

Heute bin ich endlich zum testen gekommen.

Leider funktioniert das mit --base=0x0 --end=0xFFFFF --reset=0x0 auch 
nicht.

Müssen die Adressen des Flash-Bausteins (siehe adressen.png) 
berücksichtigt werden?
Wo wird festgelegt dass die Software auf dem Flash in den onchip-memory 
kopiert wird?

mfg

von moa (Gast)


Lesenswert?

Ich wuerde meine Hand jetzt nicht ins Feuer legen, aber ich denke Du 
hast die 2 obersten Bits vergessen.

von Student (Gast)


Lesenswert?

Welche Bits? Ich versteh gerade nicht was du meinst.

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
Noch kein Account? Hier anmelden.