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

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

[avr-libc-dev] [bug #45151] #define _ASM_SFR_COMPAT 1 and #include <avr/


From: anonymous
Subject: [avr-libc-dev] [bug #45151] #define _ASM_SFR_COMPAT 1 and #include <avr/power.h> results in build error
Date: Wed, 20 May 2015 14:49:06 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0

URL:
  <http://savannah.nongnu.org/bugs/?45151>

                 Summary: #define _ASM_SFR_COMPAT 1 and #include <avr/power.h>
results in build error
                 Project: AVR C Runtime Library
            Submitted by: None
            Submitted on: Wed 20 May 2015 02:49:05 PM UTC
                Category: Header
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: None
                  Status: None
        Percent Complete: 0%
             Assigned to: None
        Originator Email: address@hidden
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 1.8.0
           Fixed Release: None

    _______________________________________________________

Details:

Note: release field is incorrect, but there isnt one for newest svn.
I was testing current trunk avr-libc + current gcc 5 branch
(20.5.2015, avr-libc r2475) against my projects when i found this.

I simplified it as:

$ cat simple.c
#define _SFR_ASM_COMPAT 1
#include <avr/io.h>
#include <avr/power.h>

void main(void) { }

$ avr-gcc -mmcu=atmega328p -Os simple.c
In file included from simple.c:3:0:
/home/urjaman/avrtc-test/avr/include/avr/power.h: In function
'__power_all_enable':
/home/urjaman/avrtc-test/avr/include/avr/power.h:1152:9: error: lvalue
required as left operand of assignment
     PRR &= (uint8_t)~(__AVR_HAVE_PRR);
         ^
/home/urjaman/avrtc-test/avr/include/avr/power.h: In function
'__power_all_disable':
/home/urjaman/avrtc-test/avr/include/avr/power.h:1201:9: error: lvalue
required as left operand of assignment
     PRR |= (uint8_t)(__AVR_HAVE_PRR);
         ^

I think this might have been officially not supported, but it used to work
without error.

I worked around by not including <avr/power.h> in the module that uses
_ASM_SFR_COMPAT (has a few variable definitions and an ASM ISR and some C
helpers to interface with the variables (and thus the ISR)), but it is
slightly annoying for a project where all system includes used to in one
main.h (another .c needed to include <avr/power.h> then).





    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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