Nut/OS  4.10.3
API Reference
arch.h
Go to the documentation of this file.
00001 #ifndef _CFG_ARCH_H_
00002 #define _CFG_ARCH_H_
00003 
00004 /*
00005  * Copyright (C) 2004-2006 by egnite Software GmbH. All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted provided that the following conditions
00009  * are met:
00010  *
00011  * 1. Redistributions of source code must retain the above copyright
00012  *    notice, this list of conditions and the following disclaimer.
00013  * 2. Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in the
00015  *    documentation and/or other materials provided with the distribution.
00016  * 3. Neither the name of the copyright holders nor the names of
00017  *    contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS
00021  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE
00024  * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
00027  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
00028  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00029  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
00030  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00031  * SUCH DAMAGE.
00032  *
00033  * For additional information see http://www.ethernut.de/
00034  *
00035  */
00036 
00068 /*
00069  * This file is reserved to specify architecture dependant
00070  * configuration and is currently used as a placeholder 
00071  * when not using the Configurator.
00072  */
00073 
00074 /*
00075 ** Determine board defaults.
00076 **/
00077 #if defined(ETHERNUT1)
00078 
00079 #ifndef PLATFORM
00080 #define PLATFORM ETHERNUT1
00081 #endif
00082 
00083 #ifndef AVR_GCC
00084 #define AVR_GCC
00085 #endif
00086 
00087 #if !defined(MCU_ATMEGA128) && !defined(MCU_ATMEGA2560) && !defined(MCU_ATMEGA2561)
00088 #if defined(__AVR_ATmega2561__) || defined(ATMega2561)
00089 #define MCU_ATMEGA2561
00090 #elif defined(__AVR_ATmega2561__) || defined(ATMega2561)
00091 #define MCU_ATMEGA2560
00092 #else
00093 #define MCU_ATMEGA128
00094 #endif
00095 #endif
00096 
00097 #elif defined(ETHERNUT2)
00098 
00099 #ifndef PLATFORM
00100 #define PLATFORM ETHERNUT2
00101 #endif
00102 
00103 #ifndef AVR_GCC
00104 #define AVR_GCC
00105 #endif
00106 
00107 #if !defined(MCU_ATMEGA128) && !defined(MCU_ATMEGA2560) && !defined(MCU_ATMEGA2561)
00108 #if defined(__AVR_ATmega2561__) || defined(ATMega2561)
00109 #define MCU_ATMEGA2561
00110 #elif defined(__AVR_ATmega2561__) || defined(ATMega2561)
00111 #define MCU_ATMEGA2560
00112 #else
00113 #define MCU_ATMEGA128
00114 #endif
00115 #endif
00116 
00117 #elif defined(ETHERNUT3)
00118 
00119 #ifndef PLATFORM
00120 #define PLATFORM ETHERNUT3
00121 #endif
00122 
00123 #ifndef ARM_GCC
00124 #define ARM_GCC
00125 #endif
00126 
00127 #ifndef MCU_AT91R40008
00128 #define MCU_AT91R40008
00129 #endif
00130 
00131 #elif defined(ETHERNUT5)
00132 
00133 #ifndef PLATFORM
00134 #define PLATFORM ETHERNUT5
00135 #endif
00136 
00137 #ifndef ARM_GCC
00138 #define ARM_GCC
00139 #endif
00140 
00141 #ifndef MCU_AT91SAM9XE512
00142 #define MCU_AT91SAM9XE512
00143 #endif
00144 
00145 #elif defined(AT91SAM7X_EK)
00146 
00147 #ifndef PLATFORM
00148 #define PLATFORM AT91SAM7X_EK
00149 #endif
00150 
00151 #ifndef ARM_GCC
00152 #define ARM_GCC
00153 #endif
00154 
00155 #ifndef MCU_AT91SAM7X256
00156 #define MCU_AT91SAM7X256
00157 #endif
00158 
00159 #elif defined(AT91SAM7S)
00160 
00161 #ifndef PLATFORM
00162 #define PLATFORM AT91SAM7S
00163 #endif
00164 
00165 #ifndef ARM_GCC
00166 #define ARM_GCC
00167 #endif
00168 
00169 #ifndef MCU_AT91SAM7S256
00170 #define MCU_AT91SAM7S256
00171 #endif
00172 
00173 #elif defined(AT91SAM7SE_EK)
00174 
00175 #ifndef PLATFORM
00176 #define PLATFORM AT91SAM7SE_EK
00177 #endif
00178 
00179 #ifndef ARM_GCC
00180 #define ARM_GCC
00181 #endif
00182 
00183 #ifndef MCU_AT91SAM7SE512
00184 #define MCU_AT91SAM7SE512
00185 #endif
00186 
00187 #elif defined(ELEKTOR_IR1)
00188 
00189 #ifndef PLATFORM
00190 #define PLATFORM ELEKTOR_IR1
00191 #endif
00192 
00193 #ifndef ARM_GCC
00194 #define ARM_GCC
00195 #endif
00196 
00197 #ifndef MCU_AT91SAM7SE512
00198 #define MCU_AT91SAM7SE512
00199 #endif
00200 
00201 #elif defined(AT91SAM9260_EK)
00202 
00203 #ifndef PLATFORM
00204 #define PLATFORM AT91SAM9260_EK
00205 #endif
00206 
00207 #ifndef ARM_GCC
00208 #define ARM_GCC
00209 #endif
00210 
00211 #ifndef MCU_AT91SAM9260
00212 #define MCU_AT91SAM9260
00213 #endif
00214 
00215 #elif defined(AT91SAM9G45_EK)
00216 
00217 #ifndef PLATFORM
00218 #define PLATFORM AT91SAM9G45_EK
00219 #endif
00220 
00221 #ifndef ARM_GCC
00222 #define ARM_GCC
00223 #endif
00224 
00225 #ifndef MCU_AT91SAM9G45
00226 #define MCU_AT91SAM9G45
00227 #endif
00228 
00229 #endif /* Board */
00230 
00231 /*
00232 ** Determine Atmel MCU family.
00233 **/
00234 #if defined(MCU_AT91SAM7S16) || defined(MCU_AT91SAM7S32) || defined(MCU_AT91SAM7S64) \
00235     || defined(MCU_AT91SAM7S128) || defined(MCU_AT91SAM7S256) || defined(MCU_AT91SAM7S512)
00236 #ifndef MCU_AT91SAM7S
00237 #define MCU_AT91SAM7S
00238 #endif
00239 #endif
00240 
00241 #if defined(MCU_AT91SAM7SE32) || defined(MCU_AT91SAM7SE256) || defined(MCU_AT91SAM7SE512)
00242 #ifndef MCU_AT91SAM7SE
00243 #define MCU_AT91SAM7SE
00244 #endif
00245 #endif
00246 
00247 #if defined(MCU_AT91SAM7X128) || defined(MCU_AT91SAM7X256) || defined(MCU_AT91SAM7X512)
00248 #ifndef MCU_AT91SAM7X
00249 #define MCU_AT91SAM7X
00250 #endif
00251 #endif
00252 
00253 #if defined(MCU_AT91SAM9XE128) || defined(MCU_AT91SAM9XE256) || defined(MCU_AT91SAM9XE512)
00254 #ifndef MCU_AT91SAM9XE
00255 #define MCU_AT91SAM9XE
00256 #endif
00257 #endif
00258 
00259 #if defined(MCU_AT91SAM7S) || defined(MCU_AT91SAM7SE) || defined(MCU_AT91SAM9XE) || defined(MCU_AT91SAM9G45)
00260 #ifndef MCU_AT91
00261 #define MCU_AT91
00262 #endif
00263 #endif
00264 
00265 #endif