risc-v vermutlich Fehler im linker script

Gast #6595994
Lesenswert?

Hallo,

ich versuche eine Test-Anwendung für eine risc-v cpu zu erstellen.
Das Problem welches ich dabei habe ist das der StartUp-code hinter das 
eigentliche Programm gestellt wird und es direkt "Abstürzt" da z.B. der 
StackPointer etc. nicht korrekt intialisiert ist.

Ich vermute das liegt an meinem linker script.
Ich muss zugeben ich habe was das angeht nur "gefährliches Halbwissen" 
und benötige etwas Erklärung / Unterstützung um das hinzubiegen.

Der Speicher meines Test-Systems ist folgendermaßen aufgebaut:

RAM : 0x00000000 - 0x00007FFF - Bereich in dem stack , heap usw liegen. 
sollen

ROM : 0x00008000 - 0x00009FFF - Bereich in dem der StartUp und Programm 
code, Konstanten usw. liegen soll

Das linker script "linker.ld", den StartUp-code "crt.S" und ein 
object-dump der Anwendungsdatei "object-dump.txt" habe ich angehängt.

Wenn ich mir jetzt den object-dump anschaue steht die Sektion 
.start_jump hinter .memory, meiner Meinung nach müsste das aber 
umgekehrt sein.

Das linker script und den StartUp-code habe ich von einem VexRiscV - 
Murax Soc - Demo übernommen (Mein Test-System ist eine VexRiscV soft-cpu 
in einem FPGA) und angepasst -> was wohl auch das Problem ist, 
wahrscheinlich ist es ein sehr trivialer Fehler aber ich bin irgendwie 
zu "stumpf" um ihn zu finden.

Evtl. hat jemand Lust und Zeit sich das anzuschauen und kann kurz 
erläutern wo der Fehler steckt.

Danke.
Angehängte Dateien:
Gast #6596061
Lesenswert?

.. hat sich erledigt, habs Problem gefunden, war gar nicht das linker 
script sondern falsche Einstellung in eclipse beim build, die crt.o 
wurde nie gebaut und von daher deren code auch nicht eingefügt...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren