Forum: FPGA, VHDL & Co. Leon 3 Offset setzen, um von Addresse x zu booten


von Daniel S. (pod)


Lesenswert?

hi,

ich versuche die rstaddr beim leon3 zu verändern auf 0x000a0000. 
Standard ist 0x0. Das ist die Addr von der der Leon aus dem flash 
bootet. Ich habe ein helloworldprogramm an die gennante Stelle 
geschrieben und muss nun den Offset anpassen.
Bei der Xconfig zu finden unter -> Processor > IU > reset.

oder auch direkt in der config.vhd:

constant CFG_RSTADDR : integer := 16#000a0#;

Das Problem ist das das setzen dieses Parameters keine Auswirkungen hat.
Er hat seinen Programmcounter immer auf Adresse 0, egal was ich dort 
eintrage. Und er schreibt beim Starten somit auch keinerlei Daten in den 
Ram.

Ist das ein Bug? Hat jmd schonmal den Offset geändert?


Ich hab auch schon ein go 0x000A0000 im Grmon versucht,um zu sehen ob er 
wenigstens dann das Programm ausführt;er versucht zu starten,bekommt 
aber die Fehlermeldung tt=0x07 (mem_address_not_aligned). Auch hierbei 
kopiert er nichts in den Ram.

Wenn ich die Addresse des Programms auf Standard 0x0 lasse funktioniert 
alles einwandfrei, da ja auch der Offset vom Leon Standardmässig auf 0x0 
ist.

Gibts da evtl. noch eine Möglichkeit den Leon während dem Betrieb von 
der Addresse booten zu lassen? Ein go hab ich schon versucht...


So hab ich das Programm compiliert,falls da ein Fehler liegen sollte:

sparc-elf-gcc -msoft-float -c -g -O2 hello.c

mkprom2 -freq 40 -rmw hello.o -msoft-float -rstaddr 0x000a0000

.text belegt ca. 23kB
.data belegt ca 2,5kB

Gruß Daniel

von Duke Scarring (Gast)


Lesenswert?

Ich wollte Dich gerade an die kompetente und schnelle 
leon-sparc-Mailingliste verweisen. Aber da bist Du ja schon zu gange :-)

Duke

von Daniel S. (pod)


Lesenswert?

hm, Jiri antwortet nicht so konkret...immer nur in so kurzen Sätzen.
Ich schreib eben parallel in mehreren Foren^^

Zurück zum Problem:

Ich hab jetzt mit GRMON das Programm erneut in den Flash geladen auf 
Adresse 0, die ja Standard ist. Das funktioniert NACHDEM ich den Leon 
draufgeladen habe ohne Probleme. Dieses mal war der Leon aber bereits 
initialisiert.Ich hab dann ein go 0 gemacht und bekomme eine 
Fehlermeldung.

Ich vermute stark das das was mit dem Bootvorgang vom Leon selbst zu tun 
hat. Immer nach dem laden des Leon auf den FPGA funktioniert das 
Programm. Da lädt er gleich danach etwas in den Ram.

Weiß jemand wie ich am Bootvorgang vom Leon etwas ändern kann?

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.