avr-libc-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-dev] [bug #12865] Global Interrupts Explicitly Enabled by SIGN


From: anonymous
Subject: [avr-libc-dev] [bug #12865] Global Interrupts Explicitly Enabled by SIGNAL Macro
Date: Thu, 28 Apr 2005 19:38:10 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.40607; .NET CLR 1.1.4322)

URL:
  <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12865>

                 Summary: Global Interrupts Explicitly Enabled by SIGNAL
Macro
                 Project: AVR C Runtime Library
            Submitted by: None
            Submitted on: Thu 04/28/2005 at 15:38
                Category: Library
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
        Originator Email: address@hidden
             Open/Closed: Open

    _______________________________________________________

Details:

Unlike the INTERRUPT macro, the SIGNAL macro should not explicitly enable
global interrupts (sei).  Here is an example of the failure.

41:       SIGNAL(SIG_OVERFLOW1)
42:       {
   SEI                      Global Interrupt Enable <- HERE
   PUSH    R1               Push register on stack
   PUSH    R0               Push register on stack
   IN      R0,0x3F          In from I/O location
   PUSH    R0               Push register on stack
   CLR     R1               Clear Register
   PUSH    R24              Push register on stack
   PUSH    R25              Push register on stack
   PUSH    R26              Push register on stack
   PUSH    R27              Push register on stack
   ...
   
   ...
   RETI                     Interrupt return

Here is the description from the documentation.

#define SIGNAL (  signame     )   
 
   Value:

void signame (void) __attribute__ ((signal));           \
void signame (void)
#include <avr/signal.h>

Introduces an interrupt handler function that runs with global interrupts
initially disabled. 
 





    _______________________________________________________

Carbon-Copy List:

CC Address                          | Comment
------------------------------------+-----------------------------
nicad2 --AT-- yahoo --DOT-- com     | Originator Email




    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12865>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

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