Hallo,
ich versuche (wie sicher schon viele Leute vor mir) einen "endless loop"
zu untersuchen indem ich mir per Watchdog Interrupt den Programmzähler
vom Stack zu holen und dann ausgeben zu lassen. Um das Ganze zu testen
rufe ich die ISR am Anfang der main() auf und bekomme dann 0x3d3 zurück.
1 | ISR( WDT_vect )
|
2 | {
|
3 | register unsigned char reg1 asm("r16");
|
4 | register unsigned char reg2 asm("r17");
|
5 |
|
6 | stack_read(); //get PC
|
7 | printf("#PC: %x%x\n",reg1,reg2);
|
8 | }
|
Mein Problem ist, daß ich diesen Wert nicht mit den Adressen im
.map-File zusammenbringe. Dort liegt main ab 0x1d84. Mir fehlt wohl noch
irgendein offset o.Ä oder habe ich einen generellen Denkfehler?
Vielen Dank für die Antworten,
Dirac