Gast
#6595994
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.