[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] interrupt service routine question
From: |
Ewout |
Subject: |
[avr-gcc-list] interrupt service routine question |
Date: |
Wed, 30 Jul 2003 20:43:36 +1200 (NZST) |
Hi,
saw that about the 'ancient' header file and corrected
it. Re-ran the compiler and linker and it produces the
same as below.
Then, I exchanged the INTERRUPT macro for the SIGNAL
macro and voila, the dissasembly dump revealed correct
code :
00000032 <__vector_4>:
32: 1f 92 push r1
34: 0f 92 push r0
36: 0f b6 in r0, 0x3f ; 63
38: 0f 92 push r0
3a: 11 24 eor r1, r1
3c: 2f 93 push r18
3e: 3f 93 push r19
40: 4f 93 push r20
42: 5f 93 push r21
44: 6f 93 push r22
46: 7f 93 push r23
48: 8f 93 push r24
4a: 9f 93 push r25
4c: af 93 push r26
4e: bf 93 push r27
50: ef 93 push r30
52: ff 93 push r31
54: cf 93 push r28
56: df 93 push r29
58: cd b7 in r28, 0x3d ; 61
5a: de b7 in r29, 0x3e ; 62
5c: 80 91 00 00 lds r24, 0x0000
60: 8f 5f subi r24, 0xFF ; 255
62: 80 93 00 00 sts 0x0000, r24
66: 80 91 00 00 lds r24, 0x0000
6a: 90 91 00 00 lds r25, 0x0000
6e: 00 97 sbiw r24, 0x00 ; 0
70: 29 f0 breq .+10 ; 0x7c
72: e0 91 00 00 lds r30, 0x0000
76: f0 91 00 00 lds r31, 0x0000
7a: 09 95 icall
7c: 0e 94 00 00 call 0x0
80: df 91 pop r29
82: cf 91 pop r28
84: ff 91 pop r31
86: ef 91 pop r30
88: bf 91 pop r27
8a: af 91 pop r26
8c: 9f 91 pop r25
8e: 8f 91 pop r24
90: 7f 91 pop r23
92: 6f 91 pop r22
94: 5f 91 pop r21
96: 4f 91 pop r20
98: 3f 91 pop r19
9a: 2f 91 pop r18
9c: 0f 90 pop r0
9e: 0f be out 0x3f, r0 ; 63
a0: 0f 90 pop r0
a2: 1f 90 pop r1
a4: 18 95 reti
so, how is this possible ? I thought thr main
difference between SIGNAL and INTERRUPT was the fact
that other interrupts were disabled or enabled whilst
servicing the interrupt.
Ewout
BTW I am a historian, believe it or not (Graduated
Leiden University in 1995). How I ended up doing this
is a different story.
Date: Tue, 29 Jul 2003 11:02:04 +0200
From: "Artur Lipowski" <address@hidden>
To: <address@hidden>
Subject: RE: [avr-gcc-list] interrupt service routine
question
Message-ID:
<address@hidden>
In-Reply-To:
<address@hidden>
Content-Type: text/plain;
charset="US-ASCII"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Precedence: list
Message: 3
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden Behalf Of
Ewout
> Sent: 29 lipca 2003 10:27
> To: address@hidden
> Subject: [avr-gcc-list] interrupt service routine
question
...
> So, where does saving of the general and status
> registers occur? Or am I missing something?
Because you are using:
#include <interrupt.h>
instead of:
#include <avr/interrupt.h>
I guess that you have installed an ancient version of
the the avr-libc
(and
probably avr-gcc).
And because it is not mailing list for historians you
probably will not
get
a good answer 8-)
BTW> Did you pass proper -mmcu option for compiler and
linker?
Regards,
--
Artur Lipowski
http://personals.yahoo.com.au - Yahoo! Personals
- New people, new possibilities! Try Yahoo! Personals, FREE for a limited
period!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-gcc-list] interrupt service routine question,
Ewout <=