Forum: Mikrocontroller und Digitale Elektronik Konstante an fester Adresse (Ansi C) ?


von Matthias (Gast)


Lesenswert?

Wie kann man in C eine Konstante an einer bestimmten Stelle im ROM 
ablegen (Keil)? Ich brauche eine Marke, um später im Bootloader an einer 
definierten Stelle nach einer Kennung zu suchen.

Wie diese z.B.:
1
char code codekennung[] = { 'T','E','S','T' };
funktioniert zwar, nur liegt "codekennung" jedes mal an anderer Adresse.

Mit:
1
char code codekennung[] = { 'T','E','S','T' } _at_ 0xFFF0;
funktioniert es nicht, Compiler Syntax lässt das nicht zu.

Auch im Linker finde ich keine Möglichkeit, eine einzelne Konstante an 
eine definierte Adresse zu bekommen.

von Ralph (Gast)


Lesenswert?

es geht über den Linker.
Lege dort eine eigene Section für diese Variable an mit Startadresse und 
Endadresse oder Startadresse und größe. ( hängt von Kompiler/Linker ab)
Dann kannst du die Variable dieser Section zuweisen.
Über Details zum Wie musst du aber die Hilfe/Anleitung/FAQ.... vom 
Kompiler studieren.

von Berti (Gast)


Lesenswert?


von Matthias (Gast)


Lesenswert?

Danke, hat funktioniert.

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.