ARM GCC - int-funktion liefert verschiedene Werte aus Main und C-File

Gast #5810593
Lesenswert?

Hallo Zusammen,

ich bin am Verzweifeln mit dem ARM-GCC:

Ich habe 3 Source-Files:

*main.c
*file1.c
*file2.c

in file1.c befindet sich eine Interrupt Service Routine die eine 
Variable ändert, die als

static volatile uint8_t variable

definiert ist. Das file1.c enthält auch eine uint8_t-Funktion die den 
Variablenwert zurückliefern soll:

uint8_t variable(void) {
  return variable;
}

Wenn ich die Funktion aus der Main aufrufe, dann funktioniert alles.
Wenn ich die Funktion aber aus einer Funktion innerhalb von file2.c 
aufrufe, dann kriege ich immer 0 zurück. Egal was ich einstelle.

Compiler Optimization is Os, da der Platz schon ziemlich eng ist.

Was habe ich hier übersehen?

Danke für die Hilfe
mws

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