Moin,
in der main() ist es zu spät, versuche es mal mit:
1 | /*************************************************************************
|
2 | *
|
3 | * Name : InitIO
|
4 | *
|
5 | * Beschreibung :
|
6 | * Wird direkt über dem Reset-Vektor aufgerufen, d.h.
|
7 | * der Stack-Pointer ist noch nicht initialisiert, also
|
8 | * nur direkte Zuweisungen benutzen. GCC geht davon aus
|
9 | * das R1 immer 0 ist!
|
10 | *
|
11 | * Parameter : keine
|
12 | *
|
13 | * Rückgabe : keine
|
14 | *
|
15 | *************************************************************************/
|
16 | static uint8_t gMcuCsr;
|
17 |
|
18 | void __attribute__ ((naked, section(".init0"))) InitIO (void)
|
19 | {
|
20 | __asm ("eor r1, r1"); // Register 1 löschen
|
21 |
|
22 | gMcuCsr = MCUCSR;
|
23 |
|
24 | }
|
gMcuCsr kann dann in der main() ausgewertet werden.
MfG