Zwei Möglichkeiten:
Du erzeugst ein weiteres C-File, schreibst dort die Deklarationen
hinein. Dann fügst du jeweils bei den anderen C-Files, bei welchen du
die Variablen benötigst, die Deklaration ein weiteres Mal auf, jedoch
mit dem Zusatz "extern" vorab.
Oder aber du erzeugst ein weiteres C-File mit den Deklarationen und
schreibst nun in das Header-File die Deklarationen mit dem Zusatz
"extern". Dann bindest du diesen Header in die weiteren C-Files ein.
1 | // Code in C-File:
|
2 | int var_test __attribute__ ((address(0x8000)));
|
3 | // Code in Header, bzw. weiteren C-Files:
|
4 | extern int var_test __attribute__ ((address(0x8000)));
|
Das Problem bei deiner Variante ist, dass du mit der Einbindung via
Header-File mehrere Versionen deiner Variable bekommst, die dann
unabhängig voneinander bearbeitet werden. Sprich: für jedes C-File, in
welches du den Header einbindest, wird eine eigene Variable mit diesem
Namen erstellt (so ungefähr).
Ich denke, so sollte es dann klappen :)