[En-Nut-Discussion] Is the macro __AVR_ENHANCED__ define for Ethernut1.3-Rev.G (ATmega128)?

Rodrigue rodrigue.roland at gmail.com
Thu Feb 22 15:38:00 CET 2007


Ok, I solved this mystery! Like each time, at the end, it's very simple :o)

The only place in code where I found __AVR_ENHANCED__ macro definition was
in the file icc.h (for ICCAVR compiler - I'm using avr-gcc/GNUC) located in
nut/inlucede/arc/avr/icc.h.

#if defined(_MCU_enhanced) || defined(_MCU_extended)
#undef __AVR_ENHANCED__
#define __AVR_ENHANCED__ /* Generic test for enhanced AVRs like ATMEGA128,
AT09CAN128 */
#endif

Strange, I ask myself why it was not defined in gcc.h too? I found an
another clue in Nut/OS configurator: when I selected Architecture/Atmel
ATMega128, I saw that this choice provides HW_MCU_AVR_ENHANCED...

In fact, __AVR_ENHANCED__ is declared automatically when you set the
compilation option -mmcu=atmega128 to avr-gcc. Voilà!

If you want to know all macros defintions, you have to add following
compilation options "-E -dM" to avr-gcc. By example, try this command on
simple.c:
avr-gcc -c -mmcu=atmega128 -E -dM -Os -fno-delet
e-null-pointer-checks -Wall -Wstrict-prototypes -Wa,-ahlms=simple.lst
-DETHERNUT
1 -D__HARVARD_ARCH__ -IC:/ethernut-4.2.1/nutbld/include 
-IC:/ethernut-4.2.1/nut
/include  simple.c -o simple.o

The file simple.o contains all macro definitions:
#define __LPM_classic__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint8_t __result; __asm__ ( "lpm" "\n\t" "mov %0, r0"
"\n\t" : "=r" (__result) : "z" (__addr16) : "r0" ); __result; }))
#define PRIXFAST32 "lX"
#define INT0 0
#define INT1 1
#define INT2 2
#define INT3 3
#define INT4 4
#define INT5 5
#define INT6 6
#define __DBL_MIN_EXP__ (-125)
#define XDIVEN 7
#define __LPM_dword_classic__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint32_t __result; __asm__ ( "lpm" "\n\t" "mov %A0, r0"
"\n\t" "adiw r30, 1" "\n\t" "lpm" "\n\t" "mov %B0, r0" "\n\t" "adiw r30, 1"
"\n\t" "lpm" "\n\t" "mov %C0, r0" "\n\t" "adiw r30, 1" "\n\t" "lpm" "\n\t"
"mov %D0, r0" "\n\t" : "=r" (__result), "=z" (__addr16) : "1" (__addr16) :
"r0" ); __result; }))
#define XMBK 7
#define OCF1A 4
#define OCF1B 3
#define OCF1C 0
#define __FLT_MIN__ 1.17549435e-38F
#define _T_WCHAR_ 
#define WGM20 6
#define INT_LEAST16_MIN INT16_MIN
#define TW_SR_ARB_LOST_SLA_ACK 0x68
#define PF4 4
#define OCF3A 4
#define OCF3B 3
#define OCF3C 1
#define PF7 7
#define PRIuPTR PRIu16
#define __CHAR_BIT__ 8
#define EEAR _SFR_IO16(0x1E)
#define INT4_vect _VECTOR(5)
#define FE0 4
#define FE1 4
#define _AVR_IOXXX_H_ "iom128.h"
#define ACI 4
#define EECR _SFR_IO8(0x1C)
#define INT16_C(value) value
#define set_sleep_mode(mode) do { _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG
& ~_SLEEP_MODE_MASK) | (mode)); } while(0)
#define EEDR _SFR_IO8(0x1D)
#define TW_STATUS_MASK (_BV(TWS7)|_BV(TWS6)|_BV(TWS5)|_BV(TWS4)| _BV(TWS3))
#define eeprom_is_ready() bit_is_clear(EECR, EEWE)
#define INT8_MAX 0x7f
#define UINT_LEAST64_MAX UINT64_MAX
#define ANALOG_COMP_vect _VECTOR(23)
#define TIMER0_OVF_vect _VECTOR(16)
#define SPCR _SFR_IO8(0x0D)
#define WGM0 6
#define WGM1 3
#define __WCHAR_MAX__ 32767
#define XMM0 0
#define XMM1 1
#define XMM2 2
#define SPDR _SFR_IO8(0x0F)
#define INT16_MAX 0x7fff
#define ACBG 6
#define __DBL_DENORM_MIN__ 1.40129846e-45
#define SLEEP_MODE_STANDBY (_BV(SM1) | _BV(SM2))
#define TIMER1_CAPT_vect _VECTOR(11)
#define pgm_read_byte(address_short) pgm_read_byte_near(address_short)
#define SREG_C 0
#define SREG_H 5
#define SREG_I 7
#define SREG_N 2
#define SREG_S 4
#define SREG_T 6
#define __FLT_EVAL_METHOD__ 0
#define SREG_V 3
#define SREG_Z 1
#define SIG_UART0_TRANS _VECTOR(20)
#define OCDR _SFR_IO8(0x22)
#define U2X 1
#define INT7 7
#define __AVR_ATmega128__ 1
#define TW_SR_SLA_ACK 0x60
#define _EEGET(var,addr) (var) = eeprom_read_byte ((uint8_t *)(addr))
#define OCF0 1
#define OCF2 7
#define _SFR_WORD(sfr) _MMIO_WORD(_SFR_ADDR(sfr))
#define PORTA0 PA0
#define PORTA2 PA2
#define PORTA3 PA3
#define PORTA4 PA4
#define PORTA5 PA5
#define PORTA6 PA6
#define PORTA7 PA7
#define OCR0UB 1
#define FOC 7
#define SPIE 7
#define SPIF 7
#define INT8_MIN (-INT8_MAX - 1)
#define PORTB0 PB0
#define PORTB1 PB1
#define PORTB2 PB2
#define PORTB3 PB3
#define PORTB4 PB4
#define PORTB5 PB5
#define PORTB6 PB6
#define PORTB7 PB7
#define TXB80 0
#define TXB81 0
#define PD3 3
#define CS00 0
#define CS01 1
#define CS02 2
#define PORTC0 PC0
#define PORTC1 PC1
#define PORTC2 PC2
#define PORTC3 PC3
#define PORTC4 PC4
#define PORTC6 PC6
#define PORTC7 PC7
#define INT2_vect _VECTOR(3)
#define CS10 0
#define CS11 1
#define CS12 2
#define PORTD0 PD0
#define PORTD1 PD1
#define PORTD2 PD2
#define PORTD3 PD3
#define PORTD4 PD4
#define PORTD5 PD5
#define PORTD6 PD6
#define PORTD7 PD7
#define ACIC 2
#define ACIE 3
#define __DBL_MIN_10_EXP__ (-37)
#define COM00 4
#define COM01 5
#define INT16_MIN (-INT16_MAX - 1)
#define CS20 0
#define CS21 1
#define CS22 2
#define PORTE0 PE0
#define PORTE1 PE1
#define PORTE2 PE2
#define PORTE3 PE3
#define PORTE4 PE4
#define PORTE5 PE5
#define PORTE6 PE6
#define PORTE7 PE7
#define __FINITE_MATH_ONLY__ 0
#define PG1 1
#define MPCM0 0
#define MPCM1 0
#define CS30 0
#define CS32 2
#define PORTF1 PF1
#define PORTF2 PF2
#define PORTF4 PF4
#define PORTF5 PF5
#define PORTF6 PF6
#define PORTF7 PF7
#define XCALL "call"
#define WGM33 4
#define PRIxPTR PRIx16
#define atof(s) strtod(s, 0)
#define COM20 4
#define COM21 5
#define PORTG0 PG0
#define PORTG1 PG1
#define PORTG2 PG2
#define __GNUC_PATCHLEVEL__ 6
#define EERE 0
#define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
#define cbi(sfr,bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define __AVR_MEGA__ 1
#define ACME 3
#define COM0 4
#define COM1 5
#define TW_MR_DATA_ACK 0x50
#define ADLAR 5
#define EEPROM_WRITE(addr,src) { unsigned short __i; for(__i = 0; __i <
sizeof(src); __i++) eeprom_write_byte(((char *)(addr)) + __i, *(((char
*)(&(src))) + __i)); }
#define __size_t 
#define PIN0 0
#define PIN1 1
#define PIN2 2
#define PIN3 3
#define PIN4 4
#define PIN5 5
#define PIN6 6
#define PIN7 7
#define PINA _SFR_IO8(0x19)
#define PINB _SFR_IO8(0x16)
#define PINC _SFR_IO8(0x13)
#define PIND _SFR_IO8(0x10)
#define PINE _SFR_IO8(0x01)
#define INT_FAST8_MAX INT8_MAX
#define PING _SFR_MEM8(0x63)
#define _WCHAR_T_DEFINED 
#define TW_SR_DATA_NACK 0x88
#define SPR0 0
#define SPR1 1
#define SPSR _SFR_IO8(0x0E)
#define __SHRT_MAX__ 32767
#define TWSR _SFR_MEM8(0x71)
#define __LDBL_MAX__ 3.40282347e+38L
#define EEWE 1
#define PE4 4
#define OCR0 _SFR_IO8(0x31)
#define OCR2 _SFR_IO8(0x23)
#define PE5 5
#define IVCE 0
#define RAMPZ _SFR_IO8(0x3B)
#define __LPM_word(addr) __LPM_word_enhanced__(addr)
#define ACSR _SFR_IO8(0x08)
#define SIG_USART0_TRANS _VECTOR(20)
#define UPM01 5
#define TCN0UB 2
#define SCNd16 "d"
#define UPM10 4
#define UPM11 5
#define ISC00 0
#define FOC0 7
#define FOC2 7
#define PINA2 2
#define FOC1A 7
#define FOC1B 6
#define FOC1C 5
#define FOCA 7
#define FOCB 6
#define FOCC 5
#define RXEN1 4
#define TWGCE 0
#define INT_FAST8_MIN INT8_MIN
#define SCNd32 "ld"
#define cli() __asm__ __volatile__ ("cli" ::)
#define FOC3A 7
#define FOC3B 6
#define FOC3C 5
#define bit_is_clear(sfr,bit) (!(_SFR_BYTE(sfr) & _BV(bit)))
#define __OPTIMIZE__ 1
#define SCNo16 "o"
#define EIFR _SFR_IO8(0x38)
#define SIG_SPM_READY _VECTOR(34)
#define SIG_OUTPUT_COMPARE3B _VECTOR(27)
#define MCUCSR _SFR_IO8(0x34)
#define __SIZE_T 
#define main NutAppMain
#define pgm_read_word_near(address_short)
__LPM_word((uint16_t)(address_short))
#define __LDBL_MAX_EXP__ 128
#define SCNo32 "lo"
#define CSB0 0
#define CSB1 1
#define CSB2 2
#define TW_ST_DATA_ACK 0xB8
#define SCNuLEAST16 "u"
#define UINT_FAST16_MAX UINT16_MAX
#define TW_MR_ARB_LOST 0x38
#define COMA0 6
#define COMA1 7
#define _EEPROM_H_ 1
#define UINT16_C(value) __CONCAT(value, U)
#define COMB1 5
#define SCNuLEAST32 "lu"
#define TW_MR_DATA_NACK 0x58
#define sleep_cpu() do { __asm__ __volatile__ ( "sleep" "\n\t" :: ); }
while(0)
#define COMC0 2
#define COMC1 3
#define _SIZE_T_DEFINED_ 
#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + 0x20)
#define __SCHAR_MAX__ 127
#define pgm_read_dword_near(address_short)
__LPM_dword((uint16_t)(address_short))
#define SCNxFAST16 "x"
#define UCSR0A _SFR_IO8(0x0B)
#define UCSR0B _SFR_IO8(0x0A)
#define UCSR0C _SFR_MEM8(0x95)
#define __AVR_LIBC_VERSION__ 10404UL
#define _AVR_PORTPINS_H_ 1
#define sleep_mode() do { _SLEEP_CONTROL_REG |= _BV(SE); __asm__
__volatile__ ("sleep" "\n\t" :: ); _SLEEP_CONTROL_REG &= ~_BV(SE); } while
(0)
#define SLEEP_MODE_PWR_DOWN _BV(SM1)
#define UCSR1A _SFR_MEM8(0x9B)
#define UCSR1B _SFR_MEM8(0x9A)
#define UCSR1C _SFR_MEM8(0x9D)
#define SCNxFAST32 "lx"
#define __LPM_dword(addr) __LPM_dword_enhanced__(addr)
#define SIG_UART0_DATA _VECTOR(19)
#define _SLEEP_TYPE 3
#define PRIxFAST32 "lx"
#define __AVR_LIBC_DATE_ 20060420UL
#define UPE 2
#define ETHERNUT1 1
#define SPI2X 0
#define JTD 7
#define WDCE 4
#define SIG_OUTPUT_COMPARE1A _VECTOR(12)
#define PRIuLEAST16 "u"
#define SIG_OUTPUT_COMPARE1C _VECTOR(24)
#define TW_SR_GCALL_ACK 0x70
#define PRIuFAST16 "u"
#define SCNx32 "lx"
#define __USER_LABEL_PREFIX__ 
#define EICRA _SFR_MEM8(0x6A)
#define EICRB _SFR_IO8(0x3A)
#define PRIuLEAST32 "lu"
#define SIG_OUTPUT_COMPARE3A _VECTOR(26)
#define SIG_OUTPUT_COMPARE3C _VECTOR(28)
#define __END_DECLS 
#define sleep_disable() do { _SLEEP_CONTROL_REG &= ~_BV(SE); } while(0)
#define PRIuFAST32 "lu"
#define __CONCAT(left,right) __CONCATenate(left, right)
#define UINT8_MAX (__CONCAT(INT8_MAX, U) * 2U + 1U)
#define PINB1 1
#define PINB2 2
#define __STDC_HOSTED__ 1
#define SPI_STC_vect _VECTOR(17)
#define SIG_UART0_RECV _VECTOR(18)
#define TIMER3_COMPA_vect _VECTOR(26)
#define __LDBL_HAS_INFINITY__ 1
#define TOV0 0
#define TOV1 2
#define TOV3 2
#define PINC0 0
#define __AVR_LIBC_MAJOR__ 1
#define _SFR_MEM_ADDR(sfr) ((uint16_t) &(sfr))
#define PINC1 1
#define EXTRF 1
#define __ATTR_PROGMEM__ __attribute__((__progmem__))
#define _BSD_SIZE_T_DEFINED_ 
#define __DBL_DIG__ 6
#define COMPRESS_REENABLE 
#define MCUCR _SFR_IO8(0x35)
#define EEARH _SFR_IO8(0x1F)
#define RXB80 1
#define RXB81 1
#define EEARL _SFR_IO8(0x1E)
#define __FLT_EPSILON__ 1.19209290e-7F
#define _SLEEP_MODE_MASK (_BV(SM0) | _BV(SM1) | _BV(SM2))
#define __LPM_enhanced__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint8_t __result; __asm__ ( "lpm %0, Z" "\n\t" : "=r"
(__result) : "z" (__addr16) ); __result; }))
#define PGERS 1
#define SIG_INTERRUPT0 _VECTOR(1)
#define SIG_INTERRUPT1 _VECTOR(2)
#define SIG_INTERRUPT2 _VECTOR(3)
#define SIG_INTERRUPT3 _VECTOR(4)
#define SIG_INTERRUPT4 _VECTOR(5)
#define SIG_INTERRUPT5 _VECTOR(6)
#define SIG_INTERRUPT6 _VECTOR(7)
#define SIG_INTERRUPT7 _VECTOR(8)
#define SIGNAL(signame) void signame (void) __attribute__ ((signal)); void
signame (void)
#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))
#define _SFR_BYTE(sfr) _MMIO_BYTE(_SFR_ADDR(sfr))
#define __LDBL_MIN__ 1.17549435e-38L
#define CR_TAB "\n\t"
#define XMCRA _SFR_MEM8(0x6D)
#define XMCRB _SFR_MEM8(0x6C)
#define WDP0 0
#define WDP1 1
#define WDP2 2
#define _WCHAR_T_ 
#define __AVR_LIBC_VERSION_STRING__ "1.4.4"
#define SCNoLEAST16 "o"
#define WDRF 3
#define RXCIE1 7
#define COMPRESS_DISABLE 
#define IDRD 7
#define __LPM_word_classic__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint16_t __result; __asm__ ( "lpm" "\n\t" "mov %A0, r0"
"\n\t" "adiw r30, 1" "\n\t" "lpm" "\n\t" "mov %B0, r0" "\n\t" : "=r"
(__result), "=z" (__addr16) : "1" (__addr16) : "r0" ); __result; }))
#define PRIoFAST16 "o"
#define SCNoLEAST32 "lo"
#define PF3 3
#define __DECIMAL_DIG__ 9
#define PGM_VOID_P const prog_void *
#define RWWSRE 4
#define ADSC 6
#define SCNdLEAST16 "d"
#define OCR1AH _SFR_IO8(0x2B)
#define PRIoFAST32 "lo"
#define OCR1AL _SFR_IO8(0x2A)
#define TW_READ 1
#define CS0 0
#define CS1 1
#define CS2 2
#define OCR1BH _SFR_IO8(0x29)
#define OCR1BL _SFR_IO8(0x28)
#define UCSZ 2
#define ADPS0 0
#define ADPS1 1
#define _VECTOR(N) __vector_ ## N
#define SCNdLEAST32 "ld"
#define PTRDIFF_MAX INT16_MAX
#define OCR1CH _SFR_MEM8(0x79)
#define OCR1CL _SFR_MEM8(0x78)
#define PROGMEM __ATTR_PROGMEM__
#define PRIX8 "X"
#define PRIoLEAST16 "o"
#define __LDBL_HAS_QUIET_NAN__ 1
#define INT64_C(value) __CONCAT(value, LL)
#define SIG_UART1_DATA _VECTOR(31)
#define _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr)
#define PINC2 2
#define PINC7 7
#define INT3_vect _VECTOR(4)
#define ___int_wchar_t_h 
#define __SFR_OFFSET 0
#define __GNUC__ 3
#define PRIoLEAST32 "lo"
#define UDRE1 5
#define OCR1A _SFR_IO16(0x2A)
#define OCR1C _SFR_MEM16(0x78)
#define INTF0 0
#define INTF1 1
#define INTF2 2
#define INTF3 3
#define INTF4 4
#define INTF5 5
#define INTF6 6
#define INTF7 7
#define INT_FAST16_MIN INT16_MIN
#define UCSZ0 1
#define UCSZ1 2
#define UCSZ2 2
#define PRIdLEAST16 "d"
#define PTRDIFF_MIN INT16_MIN
#define SIG_UART1_RECV _VECTOR(30)
#define TIMER3_COMPB_vect _VECTOR(27)
#define OCR3A _SFR_MEM16(0x86)
#define OCR3B _SFR_MEM16(0x84)
#define OCR3C _SFR_MEM16(0x82)
#define PRIdLEAST32 "ld"
#define ICES1 6
#define ICES3 6
#define UDRIE 5
#define TWA0 1
#define TWA1 2
#define TWA2 3
#define TWA3 4
#define TWA4 5
#define TWA5 6
#define TWA6 7
#define __DBL_MAX__ 3.40282347e+38
#define TWAR _SFR_MEM8(0x72)
#define PRIiFAST16 "i"
#define EEPROM_READ(addr,dst) eeprom_read_block((char *)(addr), &dst,
sizeof(dst))
#define __DBL_HAS_INFINITY__ 1
#define TWBR _SFR_MEM8(0x70)
#define PRId8 "d"
#define PRIiFAST32 "li"
#define TWCR _SFR_MEM8(0x74)
#define PRIi16 "i"
#define USBS0 3
#define USBS1 3
#define TWDR _SFR_MEM8(0x73)
#define _SLEEP_CONTROL_REG MCUCR
#define TWEA 6
#define TWEN 2
#define PRIi32 "li"
#define ADCH _SFR_IO8(0x05)
#define ADCL _SFR_IO8(0x04)
#define ADCW _SFR_IO16(0x04)
#define PINA0 0
#define ISC01 1
#define PINA3 3
#define PINA4 4
#define PINA5 5
#define PINA6 6
#define PINA7 7
#define PINB0 0
#define ISC10 2
#define ISC11 3
#define PINB3 3
#define PINB4 4
#define PINB5 5
#define PINB6 6
#define PINB7 7
#define _VECTORS_SIZE 140
#define _SIZE_T_DEFINED 
#define ADEN 7
#define _WCHAR_T_DEFINED_ 
#define _ARCH_AVR_GCC_H_ 
#define PRIi8 "i"
#define ISC20 4
#define ISC21 5
#define PINC3 3
#define PINC4 4
#define PINC5 5
#define PINC6 6
#define UINT_LEAST8_MAX UINT8_MAX
#define ADFR 5
#define sleep_enable() do { _SLEEP_CONTROL_REG |= _BV(SE); } while(0)
#define PIND0 0
#define ISC30 6
#define ISC31 7
#define PIND3 3
#define SCNiLEAST16 "i"
#define PIND5 5
#define PIND6 6
#define PIND7 7
#define TWIE 0
#define DDC2 2
#define TW_ST_LAST_DATA 0xC8
#define SIG_EEPROM_READY _VECTOR(22)
#define PIND1 1
#define PINE0 0
#define ISC40 0
#define ISC41 1
#define SPMCR _SFR_MEM8(0x68)
#define PINE4 4
#define PINE5 5
#define bit_is_set(sfr,bit) (_SFR_BYTE(sfr) & _BV(bit))
#define PINE7 7
#define PIND2 2
#define __USING_SJLJ_EXCEPTIONS__ 1
#define DDC5 5
#define PIND4 4
#define CPHA 2
#define SCNiLEAST32 "li"
#define ISC50 2
#define ISC51 3
#define PINF3 3
#define PINF4 4
#define PINF5 5
#define PINF6 6
#define PINF7 7
#define UPM00 4
#define ADIE 3
#define ADIF 4
#define SPMEN 0
#define PING0 0
#define ISC60 4
#define ISC61 5
#define PING3 3
#define PING4 4
#define __DBL_MAX_EXP__ 128
#define MUX0 0
#define MUX1 1
#define MUX2 2
#define MUX3 3
#define MUX4 4
#define ICR1L _SFR_IO8(0x26)
#define eeprom_busy_wait() do {} while (!eeprom_is_ready())
#define UDRIE0 5
#define UDRIE1 5
#define INLINE inline
#define ISC70 6
#define ISC71 7
#define UCSZ01 2
#define UCSZ02 2
#define TW_STATUS (TWSR & TW_STATUS_MASK)
#define TCCR1A _SFR_IO8(0x2F)
#define TCCR1B _SFR_IO8(0x2E)
#define TCCR1C _SFR_MEM8(0x7A)
#define PRIo8 "o"
#define UCSZ11 2
#define UCSZ12 2
#define INT5_vect _VECTOR(6)
#define SCNdFAST16 "d"
#define TCCR3A _SFR_MEM8(0x8B)
#define TCCR3B _SFR_MEM8(0x8A)
#define TCCR3C _SFR_MEM8(0x8C)
#define SPMIE 7
#define EEPROMWriteBytes(addr,ptr,size) { unsigned short __i; for(__i = 0;
__i < size; __i++) eeprom_write_byte(((char *)(addr)) + __i, *(((char
*)(ptr)) + __i)); }
#define SCNdFAST32 "ld"
#define _T_WCHAR 
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define CPOL 3
#define PRIiLEAST16 "i"
#define _WCHAR_T 
#define SCNiPTR SCNi16
#define outb(sfr,val) (_SFR_BYTE(sfr) = (val))
#define TW_MT_SLA_ACK 0x18
#define TWS3 3
#define TWS4 4
#define TWS5 5
#define TWS6 6
#define TWS7 7
#define outp(val,sfr) outb(sfr, val)
#define outw(sfr,val) (_SFR_WORD(sfr) = (val))
#define PRIu8 "u"
#define SIZE_MAX (__CONCAT(INT16_MAX, U))
#define PRIxLEAST8 "x"
#define UCPOL0 0
#define UCPOL1 0
#define PRIiLEAST32 "li"
#define DDA0 0
#define DDA1 1
#define DDA2 2
#define DDA3 3
#define DDA4 4
#define DDA5 5
#define DDA6 6
#define DDA7 7
#define RXC 7
#define UINT64_C(value) __CONCAT(value, ULL)
#define DDB0 0
#define DDB1 1
#define DDB2 2
#define DDB3 3
#define DDB4 4
#define DDB5 5
#define DDB6 6
#define DDB7 7
#define TIMER3_COMPC_vect _VECTOR(28)
#define _GCC_WCHAR_T 
#define PG3 3
#define DDC0 0
#define DDC1 1
#define DDC3 3
#define DDC4 4
#define PRIiFAST8 "i"
#define DDC6 6
#define DDC7 7
#define UINTPTR_MAX UINT16_MAX
#define SIG_2WIRE_SERIAL _VECTOR(33)
#define PG4 4
#define PRIx8 "x"
#define TWWC 3
#define MCUSR _SFR_IO8(0x34)
#define DDD0 0
#define DDD1 1
#define DDD2 2
#define DDD3 3
#define DDD4 4
#define DDD6 6
#define DDD7 7
#define __GXX_ABI_VERSION 1002
#define UINT_LEAST16_MAX UINT16_MAX
#define DDE0 0
#define DDE1 1
#define DDE2 2
#define DDE4 4
#define DDE5 5
#define DDE6 6
#define DDE7 7
#define __FLT_MIN_EXP__ (-125)
#define DDF1 1
#define DDF2 2
#define DDF4 4
#define DDF5 5
#define DDF6 6
#define DDF7 7
#define UINT32_MAX (__CONCAT(INT32_MAX, U) * 2UL + 1UL)
#define TXEN 3
#define DDG1 1
#define TXCIE 6
#define DDG3 3
#define DDG4 4
#define pgm_read_word(address_short) pgm_read_word_near(address_short)
#define UDRE0 5
#define PINE1 1
#define PINE2 2
#define DDD5 5
#define PINE3 3
#define TW_SR_DATA_ACK 0x80
#define __LPM_word_enhanced__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint16_t __result; __asm__ ( "lpm %A0, Z+" "\n\t" "lpm
%B0, Z" "\n\t" : "=r" (__result), "=z" (__addr16) : "1" (__addr16) );
__result; }))
#define pgm_read_word_far(address_long)
__ELPM_word((uint32_t)(address_long))
#define PINE6 6
#define __DBL_MIN__ 1.17549435e-38
#define UCPOL 0
#define PRIx16 "x"
#define COM1A0 6
#define COM1A1 7
#define COM1B0 4
#define COM1B1 5
#define FLASHEND 0x1FFFF
#define __USING_MINT8 0
#define PRIx32 "lx"
#define USART1_UDRE_vect _VECTOR(31)
#define _ARCH_AVR_H_ 
#define COM1C0 2
#define COM1C1 3
#define TXCIE0 6
#define TXCIE1 6
#define __DBL_HAS_QUIET_NAN__ 1
#define OCR1B _SFR_IO16(0x28)
#define RAMEND 0x10FF
#define TWI_vect _VECTOR(33)
#define __ELPM_classic__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint8_t __result; __asm__ ( "out %2, %C1" "\n\t" "mov r31,
%B1" "\n\t" "mov r30, %A1" "\n\t" "elpm" "\n\t" "mov %0, r0" "\n\t" : "=r"
(__result) : "r" (__addr32), "I" (_SFR_IO_ADDR(RAMPZ)) : "r0", "r30", "r31"
); __result; }))
#define __ELPM_dword_enhanced__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint32_t __result; __asm__ ( "out %2, %C1" "\n\t" "movw
r30, %1" "\n\t" "elpm %A0, Z+" "\n\t" "elpm %B0, Z+" "\n\t" "elpm %C0, Z+"
"\n\t" "elpm %D0, Z" "\n\t" : "=r" (__result) : "r" (__addr32), "I"
(_SFR_IO_ADDR(RAMPZ)) : "r30", "r31" ); __result; }))
#define __HARVARD_ARCH__ 1
#define EEMEM __attribute__((section(".eeprom")))
#define ADMUX _SFR_IO8(0x07)
#define SPM_READY_vect _VECTOR(34)
#define INT_LEAST8_MAX INT8_MAX
#define __ATTR_MALLOC__ __attribute__((__malloc__))
#define _AVR_IO_H_ 
#define OCIE1A 4
#define OCIE1B 3
#define OCIE1C 0
#define DDRA _SFR_IO8(0x1A)
#define DDRB _SFR_IO8(0x17)
#define DDRC _SFR_IO8(0x14)
#define DDRD _SFR_IO8(0x11)
#define DDRE _SFR_IO8(0x02)
#define DDRF _SFR_MEM8(0x61)
#define DDRG _SFR_MEM8(0x64)
#define INT6_vect _VECTOR(7)
#define __REGISTER_PREFIX__ 
#define INT_LEAST32_MAX INT32_MAX
#define OCIE3A 4
#define OCIE3B 3
#define PGM_P const prog_char *
#define EICR EICRB
#define __AVR_ARCH__ 5
#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr) + 0x20)
#define DD0 0
#define DD1 1
#define DD2 2
#define DD3 3
#define DD4 4
#define DD6 6
#define DD7 7
#define DOR1 3
#define _SFR_IO_ADDR(sfr) (_SFR_MEM_ADDR(sfr) - 0x20)
#define DORD 5
#define sbi(sfr,bit) (_SFR_BYTE(sfr) |= _BV(bit))
#define TOV2 6
#define RXEN0 4
#define UCR UCSR0B
#define USART1_TX_vect _VECTOR(32)
#define __FLT_MANT_DIG__ 24
#define INT_LEAST8_MIN INT8_MIN
#define TWSTA 5
#define __VERSION__ "3.4.6"
#define TWSTO 4
#define sei() __asm__ __volatile__ ("sei" ::)
#define PRIXLEAST16 "X"
#define PINF0 0
#define DDE3 3
#define PINF1 1
#define SCNi16 "i"
#define PINF2 2
#define TIMER3_CAPT_vect _VECTOR(25)
#define TIFR _SFR_IO8(0x36)
#define INT_LEAST32_MIN INT32_MIN
#define PRIXLEAST32 "lX"
#define USART0_TX_vect _VECTOR(20)
#define __INT_WCHAR_T_H 
#define CONST const
#define SCNi32 "li"
#define PORTC5 PC5
#define ASSR _SFR_IO8(0x30)
#define RAMPZ0 0
#define USART1_RX_vect _VECTOR(30)
#define DTOSTR_ALWAYS_SIGN 0x01
#define OCIE0 1
#define E2END 0x0FFF
#define DTOSTR_PLUS_SIGN 0x02
#define _STR1(EXP) #EXP
#define _STR2(EXP) _STR1(EXP)
#define _AVR_SLEEP_H_ 1
#define __ELPM_word_classic__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint16_t __result; __asm__ ( "out %2, %C1" "\n\t" "mov
r31, %B1" "\n\t" "mov r30, %A1" "\n\t" "elpm" "\n\t" "mov %A0, r0" "\n\t"
"in r0, %2" "\n\t" "adiw r30, 1" "\n\t" "adc r0, __zero_reg__" "\n\t" "out
%2, r0" "\n\t" "elpm" "\n\t" "mov %B0, r0" "\n\t" : "=r" (__result) : "r"
(__addr32), "I" (_SFR_IO_ADDR(RAMPZ)) : "r0", "r30", "r31" ); __result; }))
#define DOR 3
#define _SYS_SIZE_T_H 
#define SIG_OUTPUT_COMPARE1B _VECTOR(13)
#define SCNoPTR SCNo16
#define __SIZE_T__ 
#define SIG_ATOMIC_MAX INT8_MAX
#define TSM 7
#define UDR0 _SFR_IO8(0x0C)
#define UDR1 _SFR_MEM8(0x9C)
#define UDRE 5
#define INT32_MAX 0x7fffffffL
#define EEPROMread(addr) eeprom_read_byte((char *)(addr))
#define TICIE1 5
#define TICIE3 5
#define _SFR_IO_REG_P(sfr) (_SFR_MEM_ADDR(sfr) < 0x60)
#define TW_ST_DATA_NACK 0xC0
#define SIG_UART1_TRANS _VECTOR(32)
#define TCR0UB 0
#define TW_ST_SLA_ACK 0xA8
#define __ELPM_word_enhanced__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint16_t __result; __asm__ ( "out %2, %C1" "\n\t" "movw
r30, %1" "\n\t" "elpm %A0, Z+" "\n\t" "elpm %B0, Z" "\n\t" : "=r" (__result)
: "r" (__addr32), "I" (_SFR_IO_ADDR(RAMPZ)) : "r30", "r31" ); __result; }))
#define TIMER1_COMPA_vect _VECTOR(12)
#define UDR UDR0
#define UINT64_MAX (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)
#define TW_BUS_ERROR 0x00
#define INT7_vect _VECTOR(8)
#define SIG_ATOMIC_MIN INT8_MIN
#define PRIuFAST8 "u"
#define RXCIE 7
#define _SIZE_T_ 
#define RAND_MAX 0x7FFF
#define DDF0 0
#define DDF3 3
#define PING1 1
#define XDIV _SFR_IO8(0x3C)
#define INT32_MIN (-INT32_MAX - 1L)
#define TW_WRITE 0
#define PING2 2
#define _BSD_SIZE_T_ 
#define __SIZE_TYPE__ unsigned int
#define _SIZE_T_DECLARED 
#define OCIE3C 1
#define __ELPM(addr) __ELPM_enhanced__(addr)
#define USBS 3
#define ETIMSK _SFR_MEM8(0x7D)
#define SIG_USART0_DATA _VECTOR(19)
#define EE_READY_vect _VECTOR(22)
#define _AVR_IOM128_H_ 1
#define TXB8 0
#define OCDR0 0
#define OCDR1 1
#define OCDR2 2
#define OCDR3 3
#define OCDR4 4
#define OCDR5 5
#define OCDR6 6
#define OCDR7 7
#define TXC0 6
#define TXC1 6
#define __FLT_RADIX__ 2
#define PRIdLEAST8 "d"
#define __LDBL_EPSILON__ 1.19209290e-7L
#define INTPTR_MAX INT16_MAX
#define _EEPUT(addr,val) eeprom_write_byte ((uint8_t *)(addr),
(uint8_t)(val))
#define SCNdPTR SCNd16
#define SCNxLEAST16 "x"
#define TW_MT_DATA_NACK 0x30
#define SCNx16 "x"
#define __LPM(addr) __LPM_enhanced__(addr)
#define RXCIE0 7
#define TIMER2_COMP_vect _VECTOR(9)
#define SIG_USART0_RECV _VECTOR(18)
#define SCNxLEAST32 "lx"
#define PRIu16 "u"
#define INT_LEAST64_MAX INT64_MAX
#define SIG_USART1_TRANS _VECTOR(32)
#define EEMWE 2
#define __AVR 1
#define PRIu32 "lu"
#define EEPROMReadBytes(addr,ptr,size) eeprom_read_block((char *)(addr),
ptr, size)
#define SM0 3
#define SM1 4
#define SM2 2
#define U2X0 1
#define U2X1 1
#define TIMER3_OVF_vect _VECTOR(29)
#define INTPTR_MIN INT16_MIN
#define INT8_C(value) ((int8_t) value)
#define SRL0 4
#define SRL1 5
#define SRL2 6
#define __ELPM_enhanced__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint8_t __result; __asm__ ( "out %2, %C1" "\n\t" "movw
r30, %1" "\n\t" "elpm %0, Z+" "\n\t" : "=r" (__result) : "r" (__addr32), "I"
(_SFR_IO_ADDR(RAMPZ)) : "r30", "r31" ); __result; }))
#define SPE 6
#define SPH _SFR_IO8(0x3E)
#define SPL _SFR_IO8(0x3D)
#define TW_MR_SLA_NACK 0x48
#define UINT_FAST32_MAX UINT32_MAX
#define _WCHAR_T_H 
#define PORTA1 PA1
#define PRIxLEAST16 "x"
#define DDG0 0
#define REFS0 6
#define REFS1 7
#define DDG2 2
#define PA1 1
#define SRW 6
#define INT_LEAST64_MIN INT64_MIN
#define PRIxLEAST32 "lx"
#define PORT0 0
#define PORT1 1
#define PORT2 2
#define PORT3 3
#define PORT4 4
#define PORT5 5
#define PORT6 6
#define PORT7 7
#define ACD 7
#define PORTA _SFR_IO8(0x1B)
#define PORTB _SFR_IO8(0x18)
#define PORTC _SFR_IO8(0x15)
#define PORTD _SFR_IO8(0x12)
#define PORTE _SFR_IO8(0x03)
#define PORTF _SFR_MEM8(0x62)
#define PORTG _SFR_MEM8(0x65)
#define ACO 5
#define __FLT_HAS_QUIET_NAN__ 1
#define UINTMAX_MAX UINT64_MAX
#define INT32_C(value) __CONCAT(value, L)
#define __FLT_MAX_10_EXP__ 38
#define TIMER1_COMPB_vect _VECTOR(13)
#define ADC _SFR_IO16(0x04)
#define __LONG_MAX__ 2147483647L
#define __WCHAR_T__ 
#define __FLT_HAS_INFINITY__ 1
#define __LPM_dword_enhanced__(addr) (__extension__({ uint16_t __addr16 =
(uint16_t)(addr); uint32_t __result; __asm__ ( "lpm %A0, Z+" "\n\t" "lpm
%B0, Z+" "\n\t" "lpm %C0, Z+" "\n\t" "lpm %D0, Z" "\n\t" : "=r" (__result),
"=z" (__addr16) : "1" (__addr16) ); __result; }))
#define PRIxFAST16 "x"
#define TWPS0 0
#define TWPS1 1
#define PRIXPTR PRIX16
#define USR UCSR0A
#define PRIX16 "X"
#define OSCCAL _SFR_MEM8(0x6F)
#define NULL ((void *)0)
#define __STDINT_H_ 
#define SCNuPTR SCNu16
#define __AVR_HAVE_LPMX__ 1
#define PSR321 0
#define PRIX32 "lX"
#define __EEPROM_REG_LOCATIONS__ 1C1D1E
#define SIG_USART1_DATA _VECTOR(31)
#define XDIV0 0
#define XDIV1 1
#define XDIV2 2
#define XDIV3 3
#define XDIV4 4
#define XDIV5 5
#define XDIV6 6
#define _SFR_ADDR(sfr) _SFR_MEM_ADDR(sfr)
#define WDE 3
#define INT64_MAX 0x7fffffffffffffffLL
#define DD5 5
#define __ATTR_NORETURN__ __attribute__((__noreturn__))
#define WDTCR _SFR_IO8(0x21)
#define __AVR_LIBC_MINOR__ 4
#define SLEEP_MODE_PWR_SAVE (_BV(SM0) | _BV(SM1))
#define UINTMAX_C(value) __CONCAT(value, ULL)
#define OCR3AH _SFR_MEM8(0x87)
#define __INTTYPES_H_ 
#define SCNuFAST16 "u"
#define SIG_USART1_RECV _VECTOR(30)
#define SCNuFAST32 "lu"
#define ADCSR _SFR_IO8(0x06)
#define ICNC1 7
#define SIG_SPI _VECTOR(17)
#define SRE 7
#define INT64_MIN (-INT64_MAX - 1LL)
#define __BEGIN_DECLS 
#define __LDBL_MANT_DIG__ 24
#define CS31 1
#define PRIXLEAST8 "X"
#define UCSZ10 1
#define ETIFR _SFR_MEM8(0x7C)
#define USART0_UDRE_vect _VECTOR(19)
#define PORTF0 PF0
#define PRIuLEAST8 "u"
#define TW_SR_GCALL_DATA_ACK 0x90
#define PORTF3 PF3
#define SRW00 2
#define SRW01 3
#define TWINT 7
#define RWWSB 6
#define SRW10 6
#define SRW11 1
#define AVR 1
#define XRAMEND 0xFFFF
#define SIG_ADC _VECTOR(21)
#define SFIOR _SFR_IO8(0x20)
#define loop_until_bit_is_clear(sfr,bit) do { } while (bit_is_set(sfr, bit))
#define _AVR_INTERRUPT_H_ 
#define __WCHAR_TYPE__ int
#define PRIiPTR PRIi16
#define ICR1H _SFR_IO8(0x27)
#define __AVR__ 
#define SE 5
#define loop_until_bit_is_set(sfr,bit) do { } while (bit_is_clear(sfr, bit))
#define SCNxPTR SCNx16
#define ADC_vect _VECTOR(21)
#define ICR3H _SFR_MEM8(0x81)
#define ICR3L _SFR_MEM8(0x80)
#define __FLT_DIG__ 6
#define INT_FAST32_MAX INT32_MAX
#define PA0 0
#define TIMER1_COMPC_vect _VECTOR(24)
#define PA2 2
#define PA3 3
#define PA4 4
#define PA5 5
#define PA6 6
#define PA7 7
#define _WCHAR_T_DECLARED 
#define PRIXFAST8 "X"
#define TW_SR_ARB_LOST_GCALL_ACK 0x78
#define PB0 0
#define PB1 1
#define PB2 2
#define PB3 3
#define PB4 4
#define PB5 5
#define PB6 6
#define PB7 7
#define SIG_COMPARATOR _VECTOR(23)
#define UINT_FAST8_MAX UINT8_MAX
#define __INT_MAX__ 32767
#define PC0 0
#define PC1 1
#define PC4 4
#define PC5 5
#define PC6 6
#define PC7 7
#define SIG_OVERFLOW0 _VECTOR(16)
#define SIG_OVERFLOW1 _VECTOR(14)
#define SIG_OVERFLOW2 _VECTOR(10)
#define SIG_OVERFLOW3 _VECTOR(29)
#define SCNoFAST16 "o"
#define labs(__i) __builtin_labs(__i)
#define PORF 0
#define PD0 0
#define PD1 1
#define PD2 2
#define BORF 2
#define WGM01 3
#define USART0_RX_vect _VECTOR(18)
#define PD6 6
#define PD7 7
#define _T_SIZE_ 
#define TIMER2_OVF_vect _VECTOR(10)
#define PE0 0
#define PE1 1
#define PE2 2
#define WGM10 0
#define WGM13 4
#define PE7 7
#define UPE0 2
#define SCNoFAST32 "lo"
#define PF0 0
#define PF1 1
#define PF2 2
#define WGM21 3
#define PF5 5
#define PF6 6
#define __FLT_MAX_EXP__ 128
#define OCR3BL _SFR_MEM8(0x84)
#define TW_SR_STOP 0xA0
#define PG0 0
#define PG2 2
#define WGM30 0
#define WGM31 1
#define WGM32 3
#define UINT32_C(value) __CONCAT(value, UL)
#define RANDOM_MAX 0x7FFFFFFF
#define __ptr_t void *
#define __DBL_MANT_DIG__ 24
#define ___int_size_t_h 
#define __CONCATenate(left,right) left ## right
#define __AVR_HAVE_MOVW__ 1
#define TW_NO_INFO 0xF8
#define UINT_FAST64_MAX UINT64_MAX
#define INT_FAST32_MIN INT32_MIN
#define __WINT_TYPE__ unsigned int
#define UMSEL 6
#define SLEEP_MODE_ADC _BV(SM0)
#define SCNu16 "u"
#define __LDBL_MIN_EXP__ (-125)
#define inb(sfr) _SFR_BYTE(sfr)
#define inp(sfr) inb(sfr)
#define inw(sfr) _SFR_WORD(sfr)
#define __ELPM_word(addr) __ELPM_word_enhanced__(addr)
#define PRG_RDB(addr) pgm_read_byte(addr)
#define PC2 2
#define SCNu32 "lu"
#define PC3 3
#define MSTR 4
#define PORTG3 PG3
#define DTOSTR_UPPERCASE 0x04
#define PORTG4 PG4
#define BV(bit) _BV(bit)
#define UPM0 4
#define UPM1 5
#define __LDBL_MAX_10_EXP__ 38
#define __DBL_EPSILON__ 1.19209290e-7
#define _SIZET_ 
#define OCR3AL _SFR_MEM8(0x86)
#define _COMPILER_H_ 
#define OCR3BH _SFR_MEM8(0x85)
#define FE 4
#define UBRR UBRR0L
#define __AVR_ENHANCED__ 1
#define OCR3CH _SFR_MEM8(0x83)
#define OCR3CL _SFR_MEM8(0x82)
#define __AVR_LIBC_DATE_STRING__ "20060420"
#define __OPTIMIZE_SIZE__ 1
#define SCNiFAST16 "i"
#define TW_MT_DATA_ACK 0x28
#define TW_SR_GCALL_DATA_NACK 0x98
#define _AVR_VERSION_H_ 
#define TW_ST_ARB_LOST_SLA_ACK 0xB0
#define SCNiFAST32 "li"
#define TOIE0 0
#define TOIE1 2
#define TOIE2 6
#define TOIE3 2
#define EMPTY_INTERRUPT(vector) void vector (void) __attribute__ ((naked));
void vector (void) { __asm__ __volatile__ ("reti" ::); }
#define WGMA0 0
#define WGMA1 1
#define PUD 2
#define _NOP() __asm__ __volatile__ ("nop")
#define WGMB2 3
#define WGMB3 4
#define EERIE 3
#define TCNT1H _SFR_IO8(0x2D)
#define TCNT1L _SFR_IO8(0x2C)
#define __wchar_t__ 
#define TIMSK _SFR_IO8(0x37)
#define __ATTR_PURE__ __attribute__((__pure__))
#define TW_MT_SLA_NACK 0x20
#define SIG_OUTPUT_COMPARE0 _VECTOR(15)
#define SIG_OUTPUT_COMPARE2 _VECTOR(9)
#define INTMAX_MAX INT64_MAX
#define TCNT3H _SFR_MEM8(0x89)
#define TCNT3L _SFR_MEM8(0x88)
#define _SIZE_T 
#define PRIxFAST8 "x"
#define PSR0 1
#define __ELPM_dword_classic__(addr) (__extension__({ uint32_t __addr32 =
(uint32_t)(addr); uint32_t __result; __asm__ ( "out %2, %C1" "\n\t" "mov
r31, %B1" "\n\t" "mov r30, %A1" "\n\t" "elpm" "\n\t" "mov %A0, r0" "\n\t"
"in r0, %2" "\n\t" "adiw r30, 1" "\n\t" "adc r0, __zero_reg__" "\n\t" "out
%2, r0" "\n\t" "elpm" "\n\t" "mov %B0, r0" "\n\t" "in r0, %2" "\n\t" "adiw
r30, 1" "\n\t" "adc r0, __zero_reg__" "\n\t" "out %2, r0" "\n\t" "elpm"
"\n\t" "mov %C0, r0" "\n\t" "in r0, %2" "\n\t" "adiw r30, 1" "\n\t" "adc r0,
__zero_reg__" "\n\t" "out %2, r0" "\n\t" "elpm" "\n\t" "mov %D0, r0" "\n\t"
: "=r" (__result) : "r" (__addr32), "I" (_SFR_IO_ADDR(RAMPZ)) : "r0", "r30",
"r31" ); __result; }))
#define ADCSRA _SFR_IO8(0x06)
#define __bss_end __heap_start
#define PRIdFAST16 "d"
#define _BV(bit) (1 << (bit))
#define SIG_INPUT_CAPTURE1 _VECTOR(11)
#define SIG_INPUT_CAPTURE3 _VECTOR(25)
#define PSTR(s) (__extension__({static char __c[] PROGMEM = (s); &__c[0];}))
#define SP _SFR_IO16(0x3D)
#define PD4 4
#define _GCC_SIZE_T 
#define PD5 5
#define COM3B0 4
#define PRIdFAST32 "ld"
#define __size_t__ 
#define _UTIL_TWI_H_ 1
#define IVSEL 1
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define RXB8 1
#define PRIoPTR PRIo16
#define INTMAX_MIN INT64_MIN
#define RXC0 7
#define RXC1 7
#define _STDLIB_H_ 1
#define SLEEP_MODE_IDLE 0
#define INT_FAST16_MAX INT16_MAX
#define INT0_vect _VECTOR(1)
#define UBRR0H _SFR_MEM8(0x90)
#define XH r27
#define UBRR0L _SFR_IO8(0x09)
#define XL r26
#define _AVR_SFR_DEFS_H_ 1
#define RXEN 4
#define _SFR_MEM16(mem_addr) _MMIO_WORD(mem_addr)
#define __FLT_MAX__ 3.40282347e+38F
#define UBRR1H _SFR_MEM8(0x98)
#define YH r29
#define UBRR1L _SFR_MEM8(0x99)
#define YL r28
#define SLEEP_MODE_EXT_STANDBY (_BV(SM0) | _BV(SM1) | _BV(SM2))
#define _COMPAT_TWI_H_ 
#define INT_FAST64_MAX INT64_MAX
#define UINT_LEAST32_MAX UINT32_MAX
#define ZH r31
#define ZL r30
#define TW_MR_SLA_ACK 0x40
#define TW_MT_ARB_LOST 0x38
#define MPCM 0
#define TIMER1_OVF_vect _VECTOR(14)
#define __FLT_MIN_10_EXP__ (-37)
#define ISR(vector) void vector (void) __attribute__ ((signal)); void vector
(void)
#define OCIE2 7
#define _T_SIZE 
#define UINT8_C(value) ((uint8_t) __CONCAT(value, U))
#define PRIdFAST8 "d"
#define TIMER0_COMP_vect _VECTOR(15)
#define SPMCSR _SFR_MEM8(0x68)
#define __GNUC_MINOR__ 4
#define __ATTR_CONST__ __attribute__((__const__))
#define DOR0 3
#define ICES 6
#define PRIiLEAST8 "i"
#define PINA1 1
#define INTMAX_C(value) __CONCAT(value, LL)
#define ICF1 5
#define ICF3 5
#define INT_FAST64_MIN INT64_MIN
#define UCSZ00 1
#define __DBL_MAX_10_EXP__ 38
#define UINT16_MAX (__CONCAT(INT16_MAX, U) * 2U + 1U)
#define __LDBL_DENORM_MIN__ 1.40129846e-45L
#define ICNC3 7
#define pgm_read_byte_far(address_long) __ELPM((uint32_t)(address_long))
#define ADPS2 2
#define pgm_read_byte_near(address_short) __LPM((uint16_t)(address_short))
#define TW_START 0x08
#define EIMSK _SFR_IO8(0x39)
#define __PTRDIFF_TYPE__ int
#define PE3 3
#define pgm_read_dword(address_short) pgm_read_dword_near(address_short)
#define WGM11 1
#define TXC 6
#define WGM12 3
#define PE6 6
#define COM3C1 3
#define __ELPM_dword(addr) __ELPM_dword_enhanced__(addr)
#define PGWRT 2
#define PRIdPTR PRId16
#define __AVR_LIBC_REVISION__ 4
#define UPE1 2
#define PRId16 "d"
#define TCCR0 _SFR_IO8(0x33)
#define TCCR2 _SFR_IO8(0x25)
#define ICNC 7
#define __LDBL_MIN_10_EXP__ (-37)
#define PRId32 "ld"
#define COMB0 4
#define BLBSET 3
#define WCOL 6
#define PRIo16 "o"
#define TW_REP_START 0x10
#define WGM00 6
#define SPM_PAGESIZE 256
#define __LDBL_DIG__ 6
#define ICR1 _SFR_IO16(0x26)
#define ICR3 _SFR_MEM16(0x80)
#define __PGMSPACE_H_ 1
#define PRIo32 "lo"
#define PINF _SFR_IO8(0x00)
#define TCNT0 _SFR_IO8(0x32)
#define TCNT1 _SFR_IO16(0x2C)
#define TCNT2 _SFR_IO8(0x24)
#define TCNT3 _SFR_MEM16(0x88)
#define _MMIO_WORD(mem_addr) (*(volatile uint16_t *)(mem_addr))
#define INT1_vect _VECTOR(2)
#define COM3A0 6
#define COM3A1 7
#define PRIoFAST8 "o"
#define INT_LEAST16_MAX INT16_MAX
#define pgm_read_dword_far(address_long)
__ELPM_dword((uint32_t)(address_long))
#define PRIoLEAST8 "o"
#define SREG _SFR_IO8(0x3F)
#define TXEN0 3
#define TXEN1 3
#define abs(__i) __builtin_abs(__i)
#define COM3B1 5
#define PRIXFAST16 "X"
#define __WCHAR_T 
#define COM3C0 2
#define JTRF 4
#define UMSEL0 6
#define UMSEL1 6
#define AS0 3
#define ACIS0 0
#define ACIS1 1

Avr-gcc stops after preprocessing: comments are suppressed and macro
definitions whish are not defined are discarded.
By example the following source code:
#include <compiler.h>

//uint8_t EEMEM eeprombyte=0x10;

int main(void)
{
	uint8_t a;
	
	#ifdef __AVR_ENHANCED__
	a=0;
	#else
	a=1;
	#endif
	 
	for (;;);
}

... becomes this:
# 1 "simple.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "simple.c"




int main(void)
{
 uint8_t a;


 a=0;




 for (;;);
}

after the command:
avr-gcc -c -mmcu=atmega128 -E simple.c > simple.i

Voilà! Now, you know almost everything...
Regards,
Rodrigue



 



Rodrigue wrote:
> 
> Hello,
> 
> Is the macro __AVR_ENHANCED__ define for Ethernut1.3-Rev.G (ATmega128) ? I
> use avr-gcc (__GNUC__)
> 
> Thank you!
> Regards,
> Rodrigue
> 

-- 
View this message in context: http://www.nabble.com/Is-the-macro-__AVR_ENHANCED__-define-for-Ethernut1.3-Rev.G-%28ATmega128%29--tf3268048.html#a9100947
Sent from the MicroControllers - Ethernut mailing list archive at Nabble.com.




More information about the En-Nut-Discussion mailing list