Forum: Mikrocontroller und Digitale Elektronik Werte vom Linkerscript übertragen


von Bernd (Gast)


Lesenswert?

Hallo,

Ich benutze ein STM32 mit gcc, ist aber eigentlich egal.

Im Linker Script steht z.B. Soetwas

MEMORY
{
   ROM (rwx)  : ORIGIN = 0x08000800, LENGTH = 256K
   RAM (rwx)  : ORIGIN = 0x20000000, LENGTH =  20K
}

Im c-Code würde ich gerne das was unter ROM angegeben ist übernehmen.

Hintergrund ist bei Änderungen des Linkerscriptes nicht immer auch im c 
Code alle Offsets zu ändern. Ein #define Rom 0x08000800 im c code 
welches dann im script übernommen wird wäre mir noch lieber wenn das 
geht.

Frage ist wie?

von user (Gast)


Lesenswert?

Hallo,

vielleicht so:

Im Makefile:
ROM_Start=0x08000800

Bei den Compiler-/Linkeroptionen dann -D$(ROM_Start) mit angeben und im 
Linker

ROM (rxw) : ORIGIN = ROM_Start, LENGTH = 256K

Ich habs nicht ausprobiert also ohne Gewähr.

von Bernd (Gast)


Lesenswert?

Habs herausbekommen:

Man gibt im Linker Script z.B.

PROVIDE ( __romaddress =  ORIGIN(RAM));

an und kann dann mit extern vu32 __romaddress;

das ganze verfügbar machen und letztlich mit

dummy = (vu32) &__romaddress;

auslesen. Gockel sein dank!

von Bernd (Gast)


Lesenswert?

den Sinn der Bezeichnungen vergessen wir einfach mal, kommt vom 
herumprobieren.

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.