www.mikrocontroller.net

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


Autor: Markus Franke (Gast)
Datum:

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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
objdump -h a.out

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

Autor: Markus Franke (Gast)
Datum:

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

Autor: Volker Zabe (vza)
Datum:

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

Autor: Markus Franke (Gast)
Datum:

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

Autor: Markus Franke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat wirklich keiner eine Idee wie obiges zu bewerkstelligen wäre?

Vielen Dank im Vorraus,

Markus Franke

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]
  • [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.