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

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

[avr-libc-dev] [bug #26734] Unsafe SP register changes in ISR_NOBLOCK in


From: Anatoly Sokolov
Subject: [avr-libc-dev] [bug #26734] Unsafe SP register changes in ISR_NOBLOCK interrupt handlers
Date: Wed, 03 Jun 2009 03:07:01 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; MRA 5.0 (build 02094); SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

Follow-up Comment #1, bug #26734 (project avr-libc):

The ISR(INT0_vect,ISR_NOBLOCK) macro expand in:
void __vector_1 (void) __attribute__ ((signal,used, externally_visible))
__attribute__((interrupt)); void __vector_1 (void)

This code confused the GCC. The 'interrupt' attribute makes emit the 'sei'
instruction but the 'signal' attribute makes don't disable interrupt when SP
reg is changed.

This is bad use 'interrupt' and 'signal' attribute simultaneously.

1. I will add in the GCC code for checking incorrect attributes use. i.e use
'interrupt' and 'signal' attribute simultaneously for one function.

2. avr-libc should be modified and don't use 'interrupt' and 'signal'
attribute simultaneously.

Anatoly.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?26734>

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





reply via email to

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