mikrocontroller.net

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


Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Duke Scarring (Gast)
Datum:

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

Duke

Autor: Daniel Schembri (pod)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.