mikrocontroller.net

Forum: Compiler & IDEs Funktion an physikalische Adresse anordnen


Autor: Resonator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi C-Profis,

gibt es in AVRGCC eine einfache Möglichkeit, eine Funktion auf eine 
vorgegebene physikalische Adresse zu legen? Umständliche Wege sind mir 
bekannt, wie z.B. ein separates Programm für eine bestimmte Adresse zu 
linken. Ich stelle mir so etwas wie eine einfache #pragma Anweisung 
vor...?

Autor: mork (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So einfach ist das leider nicht, aber auch nicht besonders schwer - Du 
definierst im Linkerscript eine neue section und legst diese an die 
Adresse, wo die Funktion liegen soll. Im Programm kann dann per 
__attribute((section(".mysection"))) diese Funktion in die section 
platziert werden.

MfG Mark

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte vielleicht ergänzen, dass das nicht unbedingt über das 
Linkerscript erfolgen muss. Man kann das auch über die Kommandozeile 
machen.

-Wl,--section-start=<section>=<address>

Autor: NurEinGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur Neugierig - wofür bruacht man so was ?

Gruss
NurEinGast

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nur Neugierig - wofür bruacht man so was ?

Ein mögliches Szenario: das Programm soll den Flashinhalt verändern. Die 
dazu nötige SPM-Instruktion kann aber nur im Bootsektorbereich 
ausgeführt werden, also muss die entsprechende Funktion dort platziert 
werden.

Autor: Resonator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bingo :-)

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.