Konstante an fester Adresse (Ansi C) ?

Gast #807282
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.
Gast #807885
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren