Forum: Compiler & IDEs Position und Größe des .text Segment ermitteln


von Markus Franke (Gast)


Lesenswert?

Hallo,

ich möchte gern die Position sowie die Größe des .text Segmentes 
ermitteln. Welche Möglichkeiten habe ich da bzw. bietet mir der Compiler 
(arm-linux-gnueabi) schon irgendwelche Direktiven a la 
"__TEXT__"/"__TEXTSIZE__" die ich da eventuell nutzen könnte?

Vielen Dank im Vorraus,

Markus Franke

von Klaus W. (mfgkw)


Lesenswert?

objdump -h a.out

bzw. eine spezifische Version für das jeweilige Zielsystem (avr-objdump 
etc.)

von Markus Franke (Gast)


Lesenswert?

Vielen Dank für den Tip.

Ich möchte nun genau dieses Text-Segment mittels des POSIX-Aufrufs 
mlock() in den Speicher pinnen. mlock() erhält als Parameter die 
Anfangsadresse sowie die Länge des zu sperrenden Speicherbereichs. Da 
sich nun bei jedem Compilerdurchlauf die Größe sowie die Position des 
Text-Segmentes ändern können bräuchte ich einen Weg diese beiden Werte 
dynamisch zu bestimmen.

Vielen Dank im Vorraus,

Markus Franke

von Volker Z. (vza)


Lesenswert?

Hallo,

falls noch keine Markrn / Labels im Startupfile (oder da wo die Segmente 
angelegt werden) beim entsprechendem Segment anlegen und als Global 
definieren. Passende Deklaration im C Quelltext anlegen und drauf zu 
greifen.


so mache ich das bei Renesas Prozessoren.

ciao

von Markus Franke (Gast)


Lesenswert?

Hmmm....an Marken hab ich auch schon gedacht. Allerdings stell ich mir 
grad die Frage wo ich diese genau definiere?

Was ist mit Startupfile gemeint? An welcher Stelle der Codegenerierung 
von *.c -> a.out müssen denn die Marken eingefügt werden?

von Markus Franke (Gast)


Lesenswert?

Hat wirklich keiner eine Idee wie obiges zu bewerkstelligen wäre?

Vielen Dank im Vorraus,

Markus Franke

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.