avr-gcc-list
[Top][All Lists]
Advanced

[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!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]