Go to the documentation of this file.00001 #ifndef _ARCH_AVR_GCC_H_
00002 #define _ARCH_AVR_GCC_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 #define CONST const
00069 #define INLINE inline
00070
00071
00072 #include <avr/io.h>
00073 #include <avr/interrupt.h>
00074 #if __AVR_LIBC_VERSION__ < 10400UL
00075 #include <avr/signal.h>
00076 #endif
00077 #include <avr/eeprom.h>
00078 #include <avr/pgmspace.h>
00079 #include <avr/sleep.h>
00080 #include <stdlib.h>
00081
00082
00083
00084
00085
00086
00087 #ifdef eeprom_rb
00088 #include <avr/twi.h>
00089 #else
00090 #include <compat/twi.h>
00091 #endif
00092
00093 #if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
00094 #if !defined(TXC)
00095 #define TXC TXC0
00096 #endif
00097 #if !defined(TXB8)
00098 #define TXB8 TXB80
00099 #endif
00100 #if !defined(UMSEL)
00101 #define UMSEL UMSEL00
00102 #endif
00103 #if !defined(U2X)
00104 #define U2X U2X0
00105 #endif
00106 #if !defined(UCSZ0)
00107 #define UCSZ0 UCSZ00
00108 #endif
00109 #if !defined(UCSZ1)
00110 #define UCSZ1 UCSZ01
00111 #endif
00112 #if !defined(UCSZ2)
00113 #define UCSZ2 UCSZ02
00114 #endif
00115 #if !defined(UPM0)
00116 #define UPM0 UPM00
00117 #endif
00118 #if !defined(UPM1)
00119 #define UPM1 UPM01
00120 #endif
00121
00122 #if !defined(USBS)
00123 #define USBS USBS0
00124 #endif
00125 #if !defined(UPE)
00126 #define UPE UPE0
00127 #endif
00128 #if !defined(MPCM)
00129 #define MPCM MPCM0
00130 #endif
00131 #if !defined(UCPOL)
00132 #define UCPOL UCPOL0
00133 #endif
00134 #endif
00135
00136 #ifndef __SFR_OFFSET
00137 #define __SFR_OFFSET 0
00138 #endif
00139
00140 #define COMPRESS_DISABLE
00141 #define COMPRESS_REENABLE
00142
00143 #ifndef _NOP
00144 #define _NOP() __asm__ __volatile__ ("nop")
00145 #endif
00146
00147 #ifndef atof
00148 #define atof(s) strtod(s, 0)
00149 #endif
00150
00151 #define EEPROMReadBytes(addr, ptr, size) eeprom_read_block((char *)(addr), ptr, size)
00152
00155 #define EEPROM_READ(addr, dst) eeprom_read_block((char *)(addr), &dst, sizeof(dst))
00156 #define EEPROMread(addr) eeprom_read_byte((char *)(addr))
00157
00161 #define EEPROM_WRITE(addr, src) \
00162 { \
00163 unsigned short __i; \
00164 for(__i = 0; __i < sizeof(src); __i++) \
00165 eeprom_write_byte(((char *)(addr)) + __i, *(((char *)(&(src))) + __i)); \
00166 }
00167
00168 #define EEPROMWriteBytes(addr, ptr, size) \
00169 { \
00170 unsigned short __i; \
00171 for(__i = 0; __i < size; __i++) \
00172 eeprom_write_byte(((char *)(addr)) + __i, *(((char *)(ptr)) + __i)); \
00173 }
00174
00175 #define main NutAppMain
00176
00177
00178 #ifndef _SLEEP_MODE_MASK
00179 #if defined(SM) && !defined(SM0) && !defined(SM1) && !defined(SM2)
00180 #define _SLEEP_MODE_MASK _BV(SM)
00181 #elif !defined(SM) && defined(SM0) && defined(SM1) && !defined(SM2)
00182 #define _SLEEP_MODE_MASK (_BV(SM0) | _BV(SM1))
00183 #elif !defined(SM) && defined(SM0) && defined(SM1) && defined(SM2)
00184 #define _SLEEP_MODE_MASK (_BV(SM0) | _BV(SM1) | _BV(SM2))
00185 #endif
00186 #endif
00187
00188 #if defined(__AVR_LIBC_VERSION__)
00189 extern void *calloc(size_t num, size_t size);
00190 extern char *strdup(CONST char *str);
00191 #endif
00192
00193 #endif
00194