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...?
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
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>
Nur Neugierig - wofür bruacht man so was ? Gruss NurEinGast
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.